//! The quickest way to try a schedule out.
use crateCancelToken;
use cratePasses;
use crate;
use crateSerialExecutor;
use crateParseTree;
/// Parses `source` from scratch with `passes` and returns the settled tree
/// plus the run report — the quickest way to try a schedule out, in a test,
/// a doctest, or a first experiment:
///
/// ```
/// use increparse::prelude::*;
///
/// let settle = pass_fn(|_source: &str, _span, _ctx: &()| Outcome::Done);
/// let (tree, report) = increparse::run("hello", (settle,), ());
///
/// assert!(report.reached_fixpoint);
/// assert_eq!(tree.status(tree.root()), Status::Done);
/// ```
///
/// It is exactly [`Engine::run`] over a fresh [`ParseTree::from_source`]
/// with the [`SerialExecutor`] — for cancellation, custom executors, or
/// incremental sessions, use [`Engine`](crate::Engine) and
/// [`Session`](crate::Session) directly.