Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Crates

Expectation is a workspace of small crates with no dependencies outside the standard library. Most projects only need expectation_harness (and expectation_story for the report types).

CrateRole
expectation_modelThe vocabulary, the condition algebra, expectations and stories as plain data.
expectation_languageThe .expect format: parsing, platforms, and resolving steps against the vocabulary.
expectation_graphConflicts, override precedence, the flow DAG, Mermaid and DOT export.
expectation_storyStories → acceptance-test plans, coverage, results and verdicts.
expectation_docsThe manual, as an HTML site and Markdown.
expectation_themeThe colours, type and shapes the docs and graphs are drawn in.
expectation_serviceExternal services a run needs: started once, stopped after, “not supported yet” when they can’t be had.
expectation_harnessThe Driver trait, Bindings, the runner, and the Acceptance pipeline. Re-exports the service crate as expectation_harness::service.
expectation_remoteDriving an app through a driver embedded in it: RemoteDriver, the Rust client, and the expectation-run command. Clients for Swift and JavaScript are in clients/.
expectation_cliThe expectation command, as a binary and a library.

Each crate depends only on the ones before it: language, graph and story build on model; docs on those and theme; harness on everything, plus service; and cli on everything but harness.

The API reference has every public type.