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 evaluateresolver- Implementation ofHelResolverto provide attribute valuesbuiltins- 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,
®istry
).expect("evaluation failed");
assert!(result);