Skip to main content

omena_reactive/
lib.rs

1//! Static reactive graph primitives for read-only control-plane observation.
2//!
3//! The graph records values and effect receipts but performs no external
4//! effects. Callers retain authority over scheduling, persistence, and output.
5//! Input deposits made during a wave are deferred until the next wave.
6//!
7//! Every node requires an explicit [`ChangePolicyV0`]. Omitting the policy is a
8//! compile-time error:
9//!
10//! ```compile_fail
11//! use omena_reactive::{ReactiveGraphBuilderV0, ReactiveStateV0, ReactiveValueV0};
12//!
13//! let mut graph = ReactiveGraphBuilderV0::new();
14//! graph.add_input(ReactiveStateV0::available(ReactiveValueV0::Counter(1)));
15//! ```
16#![doc = include_str!("../docs/public-api-evolution.md")]
17
18mod divergence;
19mod engine;
20mod graph;
21mod policy;
22mod value;
23
24pub use divergence::{
25    ReactiveDivergenceClassV0, ReactiveDivergenceDispositionV0, ReactiveObservationPhaseV0,
26};
27pub use engine::{
28    DeltaFoldParityErrorV0, EffectReceiptV0, ReactiveEngineErrorV0, ReactiveEngineV0,
29    StabilizeStatusV0,
30};
31pub use graph::{
32    MapOperationV0, ReactiveGraphBuildErrorV0, ReactiveGraphBuilderV0, ReactiveNodeIdV0,
33    ReactiveNodeKindV0, ZipOperationV0,
34};
35pub use policy::ChangePolicyV0;
36pub use value::{ReactiveStateV0, ReactiveUnavailableV0, ReactiveValueV0};