pub struct CelJitProgram { /* private fields */ }Expand description
A JIT-compiled CEL program. When the cel-jit feature is ON and
the expression is simple enough, [CelProgram::compile] produces
a CelJitProgram that can be evaluated without the tree-walking
interpreter. When the feature is OFF or the expression is too
complex, this is None and evaluation falls back to the
interpreter.
Implementations§
Source§impl CelJitProgram
impl CelJitProgram
Sourcepub fn try_compile(_source: &str) -> Option<Self>
pub fn try_compile(_source: &str) -> Option<Self>
Try to JIT-compile a CEL expression. Returns None if the
expression is too complex for the JIT or if compilation fails.
The current implementation always returns None: the
scaffolding (feature gate, dependency wiring, module structure)
is in place, but the actual AST-to-cranelift-IR compilation is
a future enhancement. All expressions fall back to the
tree-walking interpreter.
Sourcepub fn evaluate(&self, _context: &Context<'_>) -> CelJitResult
pub fn evaluate(&self, _context: &Context<'_>) -> CelJitResult
Evaluate the JIT-compiled expression. Returns
CelJitResult::Unsupported if the JIT cannot handle the
expression (the caller should fall back to the interpreter).
Auto Trait Implementations§
impl Freeze for CelJitProgram
impl RefUnwindSafe for CelJitProgram
impl Send for CelJitProgram
impl Sync for CelJitProgram
impl Unpin for CelJitProgram
impl UnwindSafe for CelJitProgram
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more