Skip to main content

Crate rustev_core

Crate rustev_core 

Source
Expand description

Rustev’s pure core (spec 002).

A decision definition compiles into an identified plan, or is refused with a typed reason ([compile]); a plan evaluates deterministically over a supplied snapshot, a supplied evaluation time and supplied semantic outputs (evaluate). The result is a proposal, an escalation or an unresolved outcome, never a grant (spec 001, 3.2).

No I/O, no clock, no environment, no randomness, no async executor, no unsafe.

Re-exports§

pub use compile::Category;
pub use compile::Compiled;
pub use compile::LoadError;
pub use compile::Refusal;
pub use compile::compile;
pub use compile::compile_bytes;
pub use compile::compile_with;
pub use compile::compile_with_sources;
pub use compile::compile_with_templates;
pub use evaluate::Evaluation;
pub use evaluate::FailureContext;
pub use evaluate::PendingAcquisition;
pub use evaluate::RequestIdentityError;
pub use evaluate::SemanticRequest;
pub use evaluate::Supplied;

Modules§

builder
The typed Rust builder (R-02). It produces the same Definition value the JSON parser produces, and both go through one compiler, so there is one source of behavior. Operator arguments are the typed OpArgs structs; nothing is defaulted: every step, input and policy item is stated in full.
calibrate
Applying a calibration artifact (spec 002, 3.6).
compile
The plan compiler (spec 002, 3.9).
dynamic
Dynamic questions (spec 019): pure request validation, canonical identity, capability fit, cost admission and response judgment.
evaluate
Staged evaluation of a compiled plan (spec 002, 3.7 and 3.10).
expr
References, expressions and predicates of registry rustev.exact/1: typing (compile phase e) and evaluation (spec 002, 3.4 and 3.8).
generation_eval
Pure post-decision generation (spec 037). The frozen judgment is never an input to output validation, repair, or backstop selection.
kinds
Value kinds (spec 002, 3.5). Each is its own type with private fields and fallible construction; there is no From or Into between any two, so a score never becomes a probability and a label never acquires mass.
math
exp and ln for every pure path (spec 047).
ops
The closed exact-operator registries rustev.exact/1 (spec 002, 3.8) and rustev.exact/2 (spec 032, 3.5 and 3.6), which adds join_keyed@1 and merge_fields@1 with every rustev.exact/1 operator unchanged.
seams
Seam traits (spec 002, 3.1.2, amended by spec 003, 3.2.6; design section 8), declared as signatures over std::future only. The runtime (spec 003) composes them. They are transport-neutral; network implementations live under integrations/ (spec 001, 3.4.3).
sem
Semantic step values as the core holds them after validation.
template
Pure rustev.template/1 language machinery (spec 037, 3.3 and 3.4). This module does not construct contract documents or authorize generation. Callers supply resolved static types and exact values; graph provenance and parameter binding checks belong to the future generation compiler.
unparameterized
Parse refusals for spec 034 inputs when this build excludes that feature.
value
Exact values and their types (spec 002, 3.4 and 3.7.2), strict decoding of snapshot values, and the worst-case canonical size used by budgets.

Functions§

computed_party
The computed party of causes (spec 033, 3.5.2) and whether retrying an unresolved request unchanged can succeed (3.6.4). The computed party of causes (spec 033, 3.5.2) and whether retrying an unresolved request unchanged can succeed (3.6.4). The computed party of causes (spec 033, 3.5.2) and whether retrying an unresolved request unchanged can succeed (3.6.4). The computed party of a list of causes under the declared caller-controlled classes (3.5.2): each cause’s party, combined.
transient
The computed party of causes (spec 033, 3.5.2) and whether retrying an unresolved request unchanged can succeed (3.6.4). The computed party of causes (spec 033, 3.5.2) and whether retrying an unresolved request unchanged can succeed (3.6.4). The computed party of causes (spec 033, 3.5.2) and whether retrying an unresolved request unchanged can succeed (3.6.4). Whether retrying the same request unchanged can succeed (3.6.4): only for backend_unavailable, deadline_exceeded, and invalid_backend_output from a backend whose determinism is not bitwise.