pub struct EvalContext<'a> { /* private fields */ }Expand description
Evaluation context that includes resolver and optional built-ins registry
This is the low-level evaluation context used internally. Most users should
use FactsEvalContext and the evaluate() function instead.
§Examples
use hel::{EvalContext, HelResolver, Value};
struct MyResolver;
impl HelResolver for MyResolver {
fn resolve_attr(&self, object: &str, field: &str) -> Option<Value> {
match (object, field) {
("binary", "arch") => Some(Value::String("x86_64".into())),
_ => None,
}
}
}
let resolver = MyResolver;
let ctx = EvalContext::new(&resolver);Implementations§
Source§impl<'a> EvalContext<'a>
impl<'a> EvalContext<'a>
Sourcepub fn new(resolver: &'a dyn HelResolver) -> Self
pub fn new(resolver: &'a dyn HelResolver) -> Self
Create a context with just a resolver (no built-ins)
Sourcepub fn with_builtins(
resolver: &'a dyn HelResolver,
builtins: &'a BuiltinsRegistry,
) -> Self
pub fn with_builtins( resolver: &'a dyn HelResolver, builtins: &'a BuiltinsRegistry, ) -> Self
Create a context with both resolver and built-ins registry
Auto Trait Implementations§
impl<'a> Freeze for EvalContext<'a>
impl<'a> !RefUnwindSafe for EvalContext<'a>
impl<'a> !Send for EvalContext<'a>
impl<'a> !Sync for EvalContext<'a>
impl<'a> Unpin for EvalContext<'a>
impl<'a> !UnwindSafe for EvalContext<'a>
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