pub struct Evaluator { /* private fields */ }Expand description
A struct to convert an Expression node into a LuaValue object.
Implementations§
Source§impl Evaluator
impl Evaluator
Sourcepub fn assume_pure_metamethods(self) -> Self
pub fn assume_pure_metamethods(self) -> Self
When evaluating expressions related to tables, this value tells the evaluator if
metamethods can have side effects. For example, indexing a normal table in Lua does not
have any side effects, but if the table is a metatable, it’s __index metamethod can
possibly have side effects (since it can be a function call).
pub fn evaluate(&self, expression: &Expression) -> LuaValue
pub fn can_return_multiple_values(&self, expression: &Expression) -> bool
pub fn has_side_effects(&self, expression: &Expression) -> bool
Trait Implementations§
impl Eq for Evaluator
impl StructuralPartialEq for Evaluator
Auto Trait Implementations§
impl Freeze for Evaluator
impl RefUnwindSafe for Evaluator
impl Send for Evaluator
impl Sync for Evaluator
impl Unpin for Evaluator
impl UnwindSafe for Evaluator
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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