pub struct ConstEvaluator { /* private fields */ }Expand description
Const evaluator for metadata() handlers
Implementations§
Source§impl ConstEvaluator
impl ConstEvaluator
Sourcepub fn with_params(params: HashMap<String, ValueWord>) -> Self
pub fn with_params(params: HashMap<String, ValueWord>) -> Self
Create a const evaluator with annotation parameters
Sourcepub fn add_param(&mut self, name: String, value: ValueWord)
pub fn add_param(&mut self, name: String, value: ValueWord)
Add an annotation parameter to the scope
Sourcepub fn add_param_nb(&mut self, name: String, value: ValueWord)
pub fn add_param_nb(&mut self, name: String, value: ValueWord)
Add an annotation parameter to the scope (ValueWord, avoids ValueWord conversion)
Sourcepub fn eval(&self, expr: &Expr) -> Result<ValueWord>
pub fn eval(&self, expr: &Expr) -> Result<ValueWord>
Evaluate an expression as a const (compile-time) value
Returns an error if the expression uses non-const constructs.
Sourcepub fn eval_as_nb(&self, expr: &Expr) -> Result<ValueWord>
pub fn eval_as_nb(&self, expr: &Expr) -> Result<ValueWord>
Evaluate an expression as a const ValueWord value (avoids ValueWord materialization)
Trait Implementations§
Source§impl Clone for ConstEvaluator
impl Clone for ConstEvaluator
Source§fn clone(&self) -> ConstEvaluator
fn clone(&self) -> ConstEvaluator
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ConstEvaluator
impl Debug for ConstEvaluator
Auto Trait Implementations§
impl Freeze for ConstEvaluator
impl RefUnwindSafe for ConstEvaluator
impl Send for ConstEvaluator
impl Sync for ConstEvaluator
impl Unpin for ConstEvaluator
impl UnsafeUnpin for ConstEvaluator
impl UnwindSafe for ConstEvaluator
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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