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 extraction_compile;
23pub mod extraction_fallback;
24pub mod extraction_validate;
25mod generation;
26pub mod generation_eval;
27pub(crate) mod grading;
28#[cfg(feature = "parameterized")]
29pub mod instantiate;
30pub mod kinds;
31pub mod math;
32pub mod ops;
33pub(crate) mod policy;
34pub(crate) mod quality;
35pub mod ranking;
36pub mod seams;
37pub mod sem;
38pub mod template;
39pub mod unparameterized;
40pub mod value;
41
42/// The computed party of causes (spec 033, 3.5.2) and whether retrying an
43/// unresolved request unchanged can succeed (3.6.4).
44pub use actionable::{computed_party, transient};
45pub use compile::{
46    Category, Compiled, LoadError, Refusal, compile, compile_bytes, compile_with,
47    compile_with_sources, compile_with_templates,
48};
49pub use evaluate::{
50    Evaluation, FailureContext, PendingAcquisition, RequestIdentityError, SemanticRequest, Supplied,
51};
52
53#[cfg(feature = "parameterized")]
54pub use instantiate::{ProfiledRefusal, compile_profiled, compile_profiled_with, instantiate};
55
56// Spec 034 3.12 and 3.13; compiled only with `parameterized` (spec 050).
57#[cfg(feature = "parameterized")]
58pub mod plan_diff;
59#[cfg(feature = "parameterized")]
60pub mod profile_check;
61#[cfg(feature = "parameterized")]
62pub use plan_diff::plan_diff;
63#[cfg(feature = "parameterized")]
64pub use profile_check::{ProfileReport, profile_check};