pub trait ExpressionEvaluator: Send + Sync {
// Required methods
fn eval_statements(
&self,
stmts: &[Statement],
ctx: &mut ExecutionContext,
) -> Result<KindedSlot>;
fn eval_expr(
&self,
expr: &Expr,
ctx: &mut ExecutionContext,
) -> Result<KindedSlot>;
}Expand description
Trait for evaluating individual expressions and statement blocks.
shape-vm implements this for BytecodeExecutor. The previous AST-walking
executor consumers (StreamExecutor, WindowExecutor, JoinExecutor) were
deleted by the strict-typing bulldozer (see docs/defections.md
2026-05-06: AST-evaluation runtime executors deletion). The
ast-walking-interpreter-strict-rebuild workstream will reintroduce
streaming/windowed/joined analytics on top of compiled bytecode + typed
VM slots.
Required Methods§
Sourcefn eval_statements(
&self,
stmts: &[Statement],
ctx: &mut ExecutionContext,
) -> Result<KindedSlot>
fn eval_statements( &self, stmts: &[Statement], ctx: &mut ExecutionContext, ) -> Result<KindedSlot>
Evaluate a slice of statements and return the result.
Sourcefn eval_expr(
&self,
expr: &Expr,
ctx: &mut ExecutionContext,
) -> Result<KindedSlot>
fn eval_expr( &self, expr: &Expr, ctx: &mut ExecutionContext, ) -> Result<KindedSlot>
Evaluate a single expression and return the result.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".