pub enum Expr {
Show 18 variants
Ident {
name_range: TextRange,
range: TextRange,
},
BareWord {
text: TextRange,
range: TextRange,
},
Int {
value: i64,
range: TextRange,
},
Float {
text: TextRange,
range: TextRange,
},
String {
text: TextRange,
range: TextRange,
},
Cast {
ty: TypeName,
expr: Box<Expr>,
range: TextRange,
},
VectorLiteral {
elements: Vec<Expr>,
range: TextRange,
},
ArrayLiteral {
elements: Vec<Expr>,
range: TextRange,
},
Unary {
op: UnaryOp,
expr: Box<Expr>,
range: TextRange,
},
Binary {
op: BinaryOp,
lhs: Box<Expr>,
rhs: Box<Expr>,
range: TextRange,
},
Ternary {
condition: Box<Expr>,
then_expr: Box<Expr>,
else_expr: Box<Expr>,
range: TextRange,
},
Index {
target: Box<Expr>,
index: Box<Expr>,
range: TextRange,
},
MemberAccess {
target: Box<Expr>,
member: TextRange,
range: TextRange,
},
ComponentAccess {
target: Box<Expr>,
component: VectorComponent,
range: TextRange,
},
Assign {
op: AssignOp,
lhs: Box<Expr>,
rhs: Box<Expr>,
range: TextRange,
},
PrefixUpdate {
op: UpdateOp,
expr: Box<Expr>,
range: TextRange,
},
PostfixUpdate {
op: UpdateOp,
expr: Box<Expr>,
range: TextRange,
},
Invoke(Box<InvokeExpr>),
}Variants§
Ident
BareWord
Int
Float
String
Cast
VectorLiteral
ArrayLiteral
Unary
Binary
Ternary
Index
MemberAccess
ComponentAccess
Assign
PrefixUpdate
PostfixUpdate
Invoke(Box<InvokeExpr>)
Implementations§
Trait Implementations§
impl Eq for Expr
impl StructuralPartialEq for Expr
Auto Trait Implementations§
impl Freeze for Expr
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnsafeUnpin for Expr
impl UnwindSafe for Expr
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