Skip to main content

rustev_core/
lib.rs

1//! Rustev's pure core (spec 002).
2//!
3//! A decision definition compiles into an identified plan, or is refused
4//! with a typed reason ([`compile`]); a plan evaluates deterministically over
5//! a supplied snapshot, a supplied evaluation time and supplied semantic
6//! outputs ([`evaluate`]). The result is a proposal, an escalation or an
7//! unresolved outcome, never a grant (spec 001, 3.2).
8//!
9//! No I/O, no clock, no environment, no randomness, no async executor, no
10//! `unsafe`.
11#![forbid(unsafe_code)]
12
13mod acquisition;
14mod actionable;
15pub mod builder;
16pub mod calibrate;
17pub mod compile;
18pub mod dynamic;
19pub mod evaluate;
20pub(crate) mod execution;
21pub mod expr;
22mod generation;
23pub mod generation_eval;
24pub(crate) mod grading;
25#[cfg(feature = "parameterized")]
26pub mod instantiate;
27pub mod kinds;
28pub mod math;
29pub mod ops;
30pub(crate) mod policy;
31pub(crate) mod quality;
32pub mod seams;
33pub mod sem;
34pub mod template;
35pub mod unparameterized;
36pub mod value;
37
38/// The computed party of causes (spec 033, 3.5.2) and whether retrying an
39/// unresolved request unchanged can succeed (3.6.4).
40pub use actionable::{computed_party, transient};
41pub use compile::{
42    Category, Compiled, LoadError, Refusal, compile, compile_bytes, compile_with,
43    compile_with_sources, compile_with_templates,
44};
45pub use evaluate::{
46    Evaluation, FailureContext, PendingAcquisition, RequestIdentityError, SemanticRequest, Supplied,
47};
48
49#[cfg(feature = "parameterized")]
50pub use instantiate::{ProfiledRefusal, compile_profiled, compile_profiled_with, instantiate};
51
52// Spec 034 3.12 and 3.13; compiled only with `parameterized` (spec 050).
53#[cfg(feature = "parameterized")]
54pub mod plan_diff;
55#[cfg(feature = "parameterized")]
56pub mod profile_check;
57#[cfg(feature = "parameterized")]
58pub use plan_diff::plan_diff;
59#[cfg(feature = "parameterized")]
60pub use profile_check::{ProfileReport, profile_check};