[−][src]Enum rhai::Expr
[INTERNALS] An expression sub-tree.
Exported under the internals feature only.
Each variant is at most one pointer in size (for speed), with everything being allocated together in one single tuple.
WARNING
This type is volatile and may change.
Variants
Integer constant.
FloatConstant(Box<FloatWrapper>)Floating-point constant.
Character constant.
StringConstant(Box<(ImmutableString, Position)>)String constant.
FnPointer(Box<(ImmutableString, Position)>)FnPtr constant.
Variable access - ((variable name, position), optional modules, hash, optional index)
Property access.
{ stmt }
Wrapped expression - should not be optimized away.
FnCall(Box<((Cow<'static, str>, bool, bool, Position), Option<Box<ModuleRef>>, u64, StaticVec<Expr>, Option<bool>)>)func(expr, ... ) - ((function name, native_only, capture, position), optional modules, hash, arguments, optional default value)
Use Cow<'static, str> because a lot of operators (e.g. ==, >=) are implemented as function calls
and the function names are predictable, so no need to allocate a new String.
expr op= expr
lhs.rhs
expr[expr]
[ expr, ... ]
#{ name:expr, ... }
lhs in rhs
lhs && rhs
lhs || rhs
True(Position)true
False(Position)false
Unit(Position)()
Custom(Box<(CustomExpr, Position)>)Custom syntax
Implementations
impl Expr[src]
pub fn get_constant_value(&self) -> Dynamic[src]
pub fn get_constant_str(&self) -> String[src]
pub fn position(&self) -> Position[src]
Get the Position of the expression.
pub fn set_position(&mut self, new_pos: Position) -> &mut SelfⓘNotable traits for &'_ mut R
impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;[src]
Notable traits for &'_ mut R
impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;Override the Position of the expression.
pub fn is_pure(&self) -> bool[src]
Is the expression pure?
A pure expression has no side effects.
pub fn is_constant(&self) -> bool[src]
Is the expression a constant?
pub fn is_valid_postfix(&self, token: &Token) -> bool[src]
Is a particular token allowed as a postfix operator to this expression?
Trait Implementations
impl Clone for Expr[src]
impl Debug for Expr[src]
impl Default for Expr[src]
impl<'a> From<&'a Expr> for Expression<'a>[src]
impl Hash for Expr[src]
Auto Trait Implementations
impl !RefUnwindSafe for Expr
impl !Send for Expr
impl !Sync for Expr
impl Unpin for Expr
impl !UnwindSafe for Expr
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow(&self) -> &TⓘNotable traits for &'_ mut R
impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;[src]
Notable traits for &'_ mut R
impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut TⓘNotable traits for &'_ mut R
impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;[src]
Notable traits for &'_ mut R
impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,