pub struct EvalEngine<'arena> { /* private fields */ }Expand description
Reusable evaluation engine to avoid allocations
Implementations§
Source§impl<'arena> EvalEngine<'arena>
impl<'arena> EvalEngine<'arena>
Sourcepub fn new(arena: &'arena Bump) -> Self
pub fn new(arena: &'arena Bump) -> Self
Create a new evaluation engine with arena for zero-allocation evaluation
Sourcepub fn set_local_functions(
&mut self,
functions: Option<&'arena RefCell<ExpressionFunctionMap>>,
)
pub fn set_local_functions( &mut self, functions: Option<&'arena RefCell<ExpressionFunctionMap>>, )
Set the local expression functions for this evaluation
Sourcepub fn arena_reset(&mut self)
pub fn arena_reset(&mut self)
Reset the engine for reuse with new expression More comprehensive than arena_clear_stacks - also clears caches and context
Sourcepub fn eval(
&mut self,
ast: &'arena AstExpr<'arena>,
ctx: Option<Rc<EvalContext>>,
) -> Result<Real, ExprError>
pub fn eval( &mut self, ast: &'arena AstExpr<'arena>, ctx: Option<Rc<EvalContext>>, ) -> Result<Real, ExprError>
Evaluate an expression
Sourcepub fn set_param_overrides(&mut self, params: BatchParamMap)
pub fn set_param_overrides(&mut self, params: BatchParamMap)
Set parameter overrides for batch evaluation. These take precedence over context variables during lookup.
Sourcepub fn clear_param_overrides(&mut self)
pub fn clear_param_overrides(&mut self)
Clear parameter overrides.
Sourcepub fn with_param_overrides<F, R>(&mut self, params: BatchParamMap, f: F) -> Rwhere
F: FnOnce(&mut Self) -> R,
pub fn with_param_overrides<F, R>(&mut self, params: BatchParamMap, f: F) -> Rwhere
F: FnOnce(&mut Self) -> R,
Execute a function with parameter overrides, ensuring they are cleared afterwards. This provides RAII-style cleanup for safe batch evaluation.