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 analyze;
18pub mod bind;
19pub mod cancel;
20pub mod diag;
21pub mod emit;
22pub mod engine;
23pub mod error;
24pub mod event;
25pub mod fake;
26pub mod feature;
27pub mod html;
28pub mod lower;
29pub mod matcher;
30pub mod pack;
31pub mod provider;
32pub mod report;
33pub mod resolve;
34pub mod runner;
35pub mod step;
36pub mod tags;
37pub mod world;