Enum rhai::Expr [−][src]
pub enum Expr {}Show variants
DynamicConstant(Box<Dynamic>, Position), BoolConstant(bool, Position), IntegerConstant(INT, Position), FloatConstant(FloatWrapper<FLOAT>, Position), CharConstant(char, Position), StringConstant(ImmutableString, Position), InterpolatedString(Box<StaticVec<Expr>>, Position), Array(Box<StaticVec<Expr>>, Position), Map(Box<(StaticVec<(Ident, Expr)>, BTreeMap<Identifier, Dynamic>)>, Position), Unit(Position), Variable(Option<NonZeroU8>, Position, Box<(Option<NonZeroUsize>, Option<(NamespaceRef, u64)>, Identifier)>), Property(Box<((Identifier, u64), (Identifier, u64), (ImmutableString, Position))>), Stack(usize, Position), Stmt(Box<StmtBlock>), FnCall(Box<FnCallExpr>, Position), Dot(Box<BinaryExpr>, Position), Index(Box<BinaryExpr>, Position), And(Box<BinaryExpr>, Position), Or(Box<BinaryExpr>, Position), Custom(Box<CustomExpr>, Position),
Expand description
(INTERNALS) An expression sub-tree.
Exported under the internals
feature only.
Volatile Data Structure
This type is volatile and may change.
Variants
Dynamic constant.
Used to hold either an Array
or Map
literal for quick cloning.
All other primitive data types should use the appropriate variants for better speed.
Boolean constant.
Integer constant.
FloatConstant(FloatWrapper<FLOAT>, Position)
Floating-point constant.
Not available under no_float
.
Character constant.
StringConstant(ImmutableString, Position)
String constant.
An interpolated string.
[ expr, … ]
#{ name:expr, … }
Unit(Position)
()
Variable(Option<NonZeroU8>, Position, Box<(Option<NonZeroUsize>, Option<(NamespaceRef, u64)>, Identifier)>)
Variable access - optional short index, position, (optional index, optional (hash, modules), variable name)
The short index is u8
which is used when the index is <= 255, which should be the vast
majority of cases (unless there are more than 255 variables defined!).
This is to avoid reading a pointer redirection during each variable access.
Property(Box<((Identifier, u64), (Identifier, u64), (ImmutableString, Position))>)
Property access - ((getter, hash), (setter, hash), prop)
Stack slot
{ statement … }
FnCall(Box<FnCallExpr>, Position)
func (
expr ,
… )
Dot(Box<BinaryExpr>, Position)
lhs .
rhs
Index(Box<BinaryExpr>, Position)
expr [
expr ]
And(Box<BinaryExpr>, Position)
lhs &&
rhs
Or(Box<BinaryExpr>, Position)
lhs ||
rhs
Custom(Box<CustomExpr>, Position)
Custom syntax
Implementations
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Expr
impl !UnwindSafe for Expr
Blanket Implementations
Mutably borrows from an owned value. Read more