Public, backend-agnostic surface for Relon evaluation.
This crate is the seam between hosts and evaluator backends; it only re-exports the types a caller actually sees:
- Data shapes: [
Value], [Scope], [Thunk], [RuntimeError]. - Host configuration surface: [
Context], [Capabilities], [NativeFnGate], native-fn / decorator registration. - Policy boundary: the [
CapabilityGate] trait — single source of capability-policy truth consulted by every backend (seecapabilitymodule docs for the enforcement-timing diff between dispatch-time tree-walker checks and vtable-build-time cranelift checks). - Backend contract: the [
Evaluator] trait — five&selfmethods covering one full evaluation lifecycle.
A backend (tree-walking relon_evaluator::TreeWalkEvaluator,
cranelift AOT, LLVM AOT, wasm host wrapper, ...) implements this
single trait; hosts then hold a Box<dyn Evaluator> for dynamic
dispatch / backend swap.
Trait object-safety is a hard requirement: every method is &self plus
concrete in/out types — no generic methods.