[][src]Enum rhai::Expr

pub enum Expr {
    IntegerConstant(INTPosition),
    FloatConstant(FloatWrapperPosition),
    CharConstant(charPosition),
    StringConstant(Box<IdentX>),
    FnPointer(Box<IdentX>),
    Variable(Box<(Option<NonZeroUsize>, Option<Box<ModuleRef>>, u64, Ident)>),
    Property(Box<((String, String), IdentX)>),
    Stmt(Box<StaticVec<Stmt>>, Position),
    Expr(Box<Expr>),
    FnCall(Box<FnCallInfo>, Position),
    Dot(Box<BinaryExpr>, Position),
    Index(Box<BinaryExpr>, Position),
    Array(Box<StaticVec<Expr>>, Position),
    Map(Box<StaticVec<(IdentX, Expr)>>, Position),
    In(Box<BinaryExpr>, Position),
    And(Box<BinaryExpr>, Position),
    Or(Box<BinaryExpr>, Position),
    True(Position),
    False(Position),
    Unit(Position),
    Custom(Box<CustomExpr>, Position),
}

[INTERNALS] An expression sub-tree. Exported under the internals feature only.

WARNING

This type is volatile and may change.

Variants

IntegerConstant(INTPosition)

Integer constant.

FloatConstant(FloatWrapperPosition)

Floating-point constant.

CharConstant(charPosition)

Character constant.

StringConstant(Box<IdentX>)

String constant.

FnPointer(Box<IdentX>)

FnPtr constant.

Variable access - (optional index, optional modules, hash, variable name)

Property access - (getter, setter), prop

{ stmt }

Expr(Box<Expr>)

Wrapped expression - should not be optimized away.

func(expr, ... )

lhs.rhs

expr[expr]

[ expr, ... ]

#{ name:expr, ... }

lhs in rhs

lhs && rhs

lhs || rhs

True(Position)

true

False(Position)

false

Unit(Position)

()

Custom syntax

Implementations

impl Expr[src]

pub fn get_type_id(&self) -> Option<TypeId>[src]

Get the type of an expression.

Returns None if the expression's result type is not constant.

pub fn get_constant_value(&self) -> Option<Dynamic>[src]

Get the Dynamic value of a constant expression.

Returns None if the expression is not constant.

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 W

impl<'_, W> Write for &'_ mut W where
    W: Write + ?Sized
impl<'_, R> Read for &'_ mut R where
    R: Read + ?Sized
impl<'_, I> Iterator for &'_ mut I where
    I: Iterator + ?Sized
type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
    F: Unpin + Future + ?Sized
type Output = <F as Future>::Output;
[src]

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_unit(&self) -> bool[src]

Is the expression the unit () literal?

pub fn is_literal(&self) -> bool[src]

Is the expression a simple constant literal?

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.