pub enum Expression {
Show 39 variants
FieldOrMemberAccess(Box<Expression>, Node),
VariableAccess(Variable),
ConstantAccess(ConstantIdentifier),
FunctionAccess(QualifiedIdentifier),
MutRef(LocationExpression),
IndexAccess(Box<Expression>, Box<Expression>),
RangeAccess(Box<Expression>, Box<Expression>, Box<Expression>, RangeMode),
VariableAssignment(Variable, Option<Type>, Box<Expression>),
VariableCompoundAssignment(Node, CompoundOperator, Box<Expression>),
MultiVariableAssignment(Vec<Variable>, Box<Expression>),
IndexAssignment(Box<Expression>, Box<Expression>, Box<Expression>),
RangeAssignment(Box<Expression>, Box<Expression>, Box<Expression>, RangeMode, Box<Expression>),
IndexCompoundAssignment(Box<Expression>, Box<Expression>, CompoundOperator, Box<Expression>),
FieldAssignment(Box<Expression>, Node, Box<Expression>),
FieldCompoundAssignment(Box<Expression>, Node, CompoundOperator, Box<Expression>),
BinaryOp(Box<Expression>, BinaryOperator, Box<Expression>),
UnaryOp(UnaryOperator, Box<Expression>),
NoneCoalesceOperator(Box<Expression>, Box<Expression>),
FunctionCall(Box<Expression>, Vec<Expression>),
StaticCall(QualifiedTypeIdentifier, Node, Vec<Expression>),
StaticCallGeneric(QualifiedTypeIdentifier, Node, Vec<Expression>),
MemberOrFieldCall(Box<Expression>, Node, Vec<Expression>),
Block(Vec<Expression>),
With(Vec<VariableBinding>, Box<Expression>),
ForLoop(ForPattern, IteratableExpression, Box<Expression>),
WhileLoop(Box<Expression>, Box<Expression>),
Return(Option<Box<Expression>>),
Break(Node),
Continue(Node),
If(Box<Expression>, Box<Expression>, Option<Box<Expression>>),
Match(Box<Expression>, Vec<MatchArm>),
Guard(Vec<GuardExpr>, Option<Box<Expression>>),
InterpolatedString(Vec<StringPart>),
StructInstantiation(QualifiedTypeIdentifier, Vec<FieldExpression>, bool),
ExclusiveRange(Box<Expression>, Box<Expression>),
InclusiveRange(Box<Expression>, Box<Expression>),
Literal(Literal),
PostfixOp(PostfixOperator, Box<Expression>),
StaticMemberFunctionReference(QualifiedTypeIdentifier, Node),
}
Expand description
Expressions are things that “converts” to a value when evaluated.
Variants§
FieldOrMemberAccess(Box<Expression>, Node)
VariableAccess(Variable)
ConstantAccess(ConstantIdentifier)
FunctionAccess(QualifiedIdentifier)
MutRef(LocationExpression)
IndexAccess(Box<Expression>, Box<Expression>)
RangeAccess(Box<Expression>, Box<Expression>, Box<Expression>, RangeMode)
VariableAssignment(Variable, Option<Type>, Box<Expression>)
VariableCompoundAssignment(Node, CompoundOperator, Box<Expression>)
MultiVariableAssignment(Vec<Variable>, Box<Expression>)
IndexAssignment(Box<Expression>, Box<Expression>, Box<Expression>)
RangeAssignment(Box<Expression>, Box<Expression>, Box<Expression>, RangeMode, Box<Expression>)
IndexCompoundAssignment(Box<Expression>, Box<Expression>, CompoundOperator, Box<Expression>)
FieldAssignment(Box<Expression>, Node, Box<Expression>)
FieldCompoundAssignment(Box<Expression>, Node, CompoundOperator, Box<Expression>)
BinaryOp(Box<Expression>, BinaryOperator, Box<Expression>)
UnaryOp(UnaryOperator, Box<Expression>)
NoneCoalesceOperator(Box<Expression>, Box<Expression>)
FunctionCall(Box<Expression>, Vec<Expression>)
StaticCall(QualifiedTypeIdentifier, Node, Vec<Expression>)
StaticCallGeneric(QualifiedTypeIdentifier, Node, Vec<Expression>)
MemberOrFieldCall(Box<Expression>, Node, Vec<Expression>)
Block(Vec<Expression>)
With(Vec<VariableBinding>, Box<Expression>)
ForLoop(ForPattern, IteratableExpression, Box<Expression>)
WhileLoop(Box<Expression>, Box<Expression>)
Return(Option<Box<Expression>>)
Break(Node)
Continue(Node)
If(Box<Expression>, Box<Expression>, Option<Box<Expression>>)
Match(Box<Expression>, Vec<MatchArm>)
Guard(Vec<GuardExpr>, Option<Box<Expression>>)
InterpolatedString(Vec<StringPart>)
StructInstantiation(QualifiedTypeIdentifier, Vec<FieldExpression>, bool)
ExclusiveRange(Box<Expression>, Box<Expression>)
InclusiveRange(Box<Expression>, Box<Expression>)
Literal(Literal)
PostfixOp(PostfixOperator, Box<Expression>)
StaticMemberFunctionReference(QualifiedTypeIdentifier, Node)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Expression
impl RefUnwindSafe for Expression
impl Send for Expression
impl Sync for Expression
impl Unpin for Expression
impl UnwindSafe for Expression
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