pub struct TreeWalkingEvaluator { /* private fields */ }Expand description
Production BodyEvaluator backed by crate::ast_evaluator —
the minimum-viable tree-walker over the typed AstGraph.
One evaluator per module (the AST graph owns its node table, so the
evaluator needs the matching graph to look up body_ast_root).
The solver’s SolverState::new takes a single evaluator; for
multi-module setups (the common case), wrap a slice of per-module
evaluators in a PerModuleEvaluator (helper below).
Setter bodies that touch unsupported AST kinds (function calls,
closures) bubble up as Opaque from the tree walker, which the
evaluator surfaces as the literal JSON string "<opaque:Apply>" —
the eventual sui-eval integration recognizes the sentinel and
recomputes the body through the real VM.
Implementations§
Trait Implementations§
Source§impl BodyEvaluator for TreeWalkingEvaluator
impl BodyEvaluator for TreeWalkingEvaluator
Source§fn evaluate(
&self,
_gid: GlobalSetterId,
module: &ModuleNode,
setter: &ConfigSetter,
env_snapshot: &EnvSnapshot,
) -> Result<Vec<u8>, String>
fn evaluate( &self, _gid: GlobalSetterId, module: &ModuleNode, setter: &ConfigSetter, env_snapshot: &EnvSnapshot, ) -> Result<Vec<u8>, String>
Evaluate the setter’s body in the given environment and return
the resulting value as canonical bytes (JSON today; rkyv when
the typed value lattice is finalized). Read more
Auto Trait Implementations§
impl Freeze for TreeWalkingEvaluator
impl RefUnwindSafe for TreeWalkingEvaluator
impl Send for TreeWalkingEvaluator
impl Sync for TreeWalkingEvaluator
impl Unpin for TreeWalkingEvaluator
impl UnsafeUnpin for TreeWalkingEvaluator
impl UnwindSafe for TreeWalkingEvaluator
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.