evaluate_with_context

Function evaluate_with_context 

Source
pub fn evaluate_with_context(
    condition: &str,
    resolver: &dyn HelResolver,
    builtins: &BuiltinsRegistry,
) -> Result<bool, EvalError>
Expand description

Evaluate a HEL expression with resolver and built-in functions (low-level API)

This function evaluates a HEL expression using both a custom resolver and a built-ins registry to support function calls.

§Arguments

  • condition - The HEL expression to evaluate
  • resolver - Implementation of HelResolver to provide attribute values
  • builtins - Registry of built-in functions

§Returns

Returns Ok(true) if the condition evaluates to true, Ok(false) otherwise. Returns Err if evaluation fails.

§Examples

use hel::{evaluate_with_context, HelResolver, Value, BuiltinsRegistry, CoreBuiltinsProvider};

struct MyResolver;
impl HelResolver for MyResolver {
    fn resolve_attr(&self, _: &str, _: &str) -> Option<Value> { None }
}

let mut registry = BuiltinsRegistry::new();
registry.register(&CoreBuiltinsProvider).expect("register failed");

let result = evaluate_with_context(
    r#"core.len(["a", "b"]) == 2"#,
    &MyResolver,
    &registry
).expect("evaluation failed");
assert!(result);