Skip to main content

proef_core/
lib.rs

1//! Engine-agnostic core of **proef**, the declarative multi-engine e2e test runner.
2//!
3//! This crate owns the full front-end pipeline (gherkin parse → bind → lower → emit),
4//! the engine seam ([`engine::EngineFactory`] / [`engine::EngineSession`], ADR-0002),
5//! the [`world::World`] variable scope (ADR-0005), the serde [`event::Event`] spine
6//! (ADR-0008), and the fault taxonomy with stable exit codes (ADR-0009).
7//!
8//! # Core purity (sans-IO lite)
9//!
10//! The pipeline stages in this crate do no IO, read no clocks or environment, and
11//! generate no randomness — `run_id`, timestamps, and env snapshots are **injected**
12//! values. The single sanctioned persistence component is [`world::GlobalStore`],
13//! whose load/save functions are invoked only from the orchestrating edge (the CLI),
14//! never from pipeline code. This is what makes snapshot and property tests
15//! bit-deterministic; do not break it for convenience.
16
17pub mod bind;
18pub mod cancel;
19pub mod diag;
20pub mod emit;
21pub mod engine;
22pub mod error;
23pub mod event;
24pub mod fake;
25pub mod feature;
26pub mod lower;
27pub mod matcher;
28pub mod pack;
29pub mod report;
30pub mod resolve;
31pub mod runner;
32pub mod step;
33pub mod world;