pub struct ConditionEvaluator { /* private fields */ }Expand description
Condition evaluator for state machine transitions
Evaluates JavaScript/TypeScript-like expressions in a sandboxed environment. Supports variable access, comparison operators, logical operators, and array/object access.
Implementations§
Source§impl ConditionEvaluator
impl ConditionEvaluator
Sourcepub fn new() -> ConditionEvaluator
pub fn new() -> ConditionEvaluator
Create a new condition evaluator with empty context
Sourcepub fn with_context(context: HashMap<String, Value>) -> ConditionEvaluator
pub fn with_context(context: HashMap<String, Value>) -> ConditionEvaluator
Create a new condition evaluator with initial context
Sourcepub fn set_variable(&mut self, name: impl Into<String>, value: Value)
pub fn set_variable(&mut self, name: impl Into<String>, value: Value)
Set a context variable
Sourcepub fn get_variable(&self, name: &str) -> Option<&Value>
pub fn get_variable(&self, name: &str) -> Option<&Value>
Get a context variable
Sourcepub fn evaluate(&self, expression: &str) -> Result<bool, ConditionError>
pub fn evaluate(&self, expression: &str) -> Result<bool, ConditionError>
Evaluate a condition expression
The expression can access variables from the context using dot notation
(e.g., state.status, entity.count). Supports:
- Comparison:
==,!=,>,<,>=,<= - Logical:
&&,||,! - Arithmetic:
+,-,*,/,% - Array/object access:
arr[0],obj.field
Returns true if the condition is satisfied, false otherwise.
Trait Implementations§
Source§impl Default for ConditionEvaluator
impl Default for ConditionEvaluator
Source§fn default() -> ConditionEvaluator
fn default() -> ConditionEvaluator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ConditionEvaluator
impl RefUnwindSafe for ConditionEvaluator
impl Send for ConditionEvaluator
impl Sync for ConditionEvaluator
impl Unpin for ConditionEvaluator
impl UnsafeUnpin for ConditionEvaluator
impl UnwindSafe for ConditionEvaluator
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