pub struct ExpressionEvaluator;Expand description
Evaluates simple condition patterns against execution state.
Supports common invariant/condition patterns from ICL contracts:
"<field> is not empty"— string/array length > 0"<field> >= <number>"— numeric comparison"<field> <= <number>"— numeric comparison"<field> > <number>"— numeric comparison"<field> < <number>"— numeric comparison"<field> is boolean"— type check"<field> is valid ..."— always true (advisory)- Opaque strings — always true (not machine-evaluable)
Implementations§
Source§impl ExpressionEvaluator
impl ExpressionEvaluator
Sourcepub fn evaluate(condition: &str, state: &ExecutionState) -> (bool, bool)
pub fn evaluate(condition: &str, state: &ExecutionState) -> (bool, bool)
Evaluate a condition string against the current state.
Returns (result, is_evaluable) — false for is_evaluable means
the condition is an opaque string that can’t be machine-evaluated.
Sourcepub fn check_invariants(
invariants: &[String],
state: &ExecutionState,
) -> Result<(), Vec<String>>
pub fn check_invariants( invariants: &[String], state: &ExecutionState, ) -> Result<(), Vec<String>>
Evaluate all contract invariants against state
Auto Trait Implementations§
impl Freeze for ExpressionEvaluator
impl RefUnwindSafe for ExpressionEvaluator
impl Send for ExpressionEvaluator
impl Sync for ExpressionEvaluator
impl Unpin for ExpressionEvaluator
impl UnwindSafe for ExpressionEvaluator
Blanket Implementations§
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