pub enum Expr {
Show 42 variants
Path(PathExpr),
Literal(Literal),
AbiCast {
abi_token: AbiToken,
args: Parens<AbiCastArgs>,
},
Struct {
path: PathExpr,
fields: Braces<Punctuated<ExprStructField, CommaToken>>,
},
Tuple(Parens<ExprTupleDescriptor>),
Parens(Parens<Box<Expr>>),
Block(Braces<CodeBlockContents>),
Array(SquareBrackets<ExprArrayDescriptor>),
Asm(AsmBlock),
Return {
return_token: ReturnToken,
expr_opt: Option<Box<Expr>>,
},
If(IfExpr),
Match {
match_token: MatchToken,
value: Box<Expr>,
branches: Braces<Vec<MatchBranch>>,
},
While {
while_token: WhileToken,
condition: Box<Expr>,
block: Braces<CodeBlockContents>,
},
FuncApp {
func: Box<Expr>,
args: Parens<Punctuated<Expr, CommaToken>>,
},
Index {
target: Box<Expr>,
arg: SquareBrackets<Box<Expr>>,
},
MethodCall {
target: Box<Expr>,
dot_token: DotToken,
name: Ident,
contract_args_opt: Option<Braces<Punctuated<ExprStructField, CommaToken>>>,
args: Parens<Punctuated<Expr, CommaToken>>,
},
FieldProjection {
target: Box<Expr>,
dot_token: DotToken,
name: Ident,
},
TupleFieldProjection {
target: Box<Expr>,
dot_token: DotToken,
field: BigUint,
field_span: Span,
},
Ref {
ref_token: RefToken,
expr: Box<Expr>,
},
Deref {
deref_token: DerefToken,
expr: Box<Expr>,
},
Not {
bang_token: BangToken,
expr: Box<Expr>,
},
Mul {
lhs: Box<Expr>,
star_token: StarToken,
rhs: Box<Expr>,
},
Div {
lhs: Box<Expr>,
forward_slash_token: ForwardSlashToken,
rhs: Box<Expr>,
},
Modulo {
lhs: Box<Expr>,
percent_token: PercentToken,
rhs: Box<Expr>,
},
Add {
lhs: Box<Expr>,
add_token: AddToken,
rhs: Box<Expr>,
},
Sub {
lhs: Box<Expr>,
sub_token: SubToken,
rhs: Box<Expr>,
},
Shl {
lhs: Box<Expr>,
shl_token: ShlToken,
rhs: Box<Expr>,
},
Shr {
lhs: Box<Expr>,
shr_token: ShrToken,
rhs: Box<Expr>,
},
BitAnd {
lhs: Box<Expr>,
ampersand_token: AmpersandToken,
rhs: Box<Expr>,
},
BitXor {
lhs: Box<Expr>,
caret_token: CaretToken,
rhs: Box<Expr>,
},
BitOr {
lhs: Box<Expr>,
pipe_token: PipeToken,
rhs: Box<Expr>,
},
Equal {
lhs: Box<Expr>,
double_eq_token: DoubleEqToken,
rhs: Box<Expr>,
},
NotEqual {
lhs: Box<Expr>,
bang_eq_token: BangEqToken,
rhs: Box<Expr>,
},
LessThan {
lhs: Box<Expr>,
less_than_token: LessThanToken,
rhs: Box<Expr>,
},
GreaterThan {
lhs: Box<Expr>,
greater_than_token: GreaterThanToken,
rhs: Box<Expr>,
},
LessThanEq {
lhs: Box<Expr>,
less_than_eq_token: LessThanEqToken,
rhs: Box<Expr>,
},
GreaterThanEq {
lhs: Box<Expr>,
greater_than_eq_token: GreaterThanEqToken,
rhs: Box<Expr>,
},
LogicalAnd {
lhs: Box<Expr>,
double_ampersand_token: DoubleAmpersandToken,
rhs: Box<Expr>,
},
LogicalOr {
lhs: Box<Expr>,
double_pipe_token: DoublePipeToken,
rhs: Box<Expr>,
},
Reassignment {
assignable: Assignable,
reassignment_op: ReassignmentOp,
expr: Box<Expr>,
},
Break {
break_token: BreakToken,
},
Continue {
continue_token: ContinueToken,
},
}
Variants
Path(PathExpr)
Literal(Literal)
AbiCast
Struct
Tuple(Parens<ExprTupleDescriptor>)
Parens(Parens<Box<Expr>>)
Block(Braces<CodeBlockContents>)
Array(SquareBrackets<ExprArrayDescriptor>)
Asm(AsmBlock)
Return
If(IfExpr)
Match
While
FuncApp
Index
MethodCall
Fields
dot_token: DotToken
name: Ident
contract_args_opt: Option<Braces<Punctuated<ExprStructField, CommaToken>>>
args: Parens<Punctuated<Expr, CommaToken>>
FieldProjection
TupleFieldProjection
Ref
Deref
Not
Mul
Div
Modulo
Add
Sub
Shl
Shr
BitAnd
BitXor
BitOr
Equal
NotEqual
LessThan
GreaterThan
LessThanEq
GreaterThanEq
LogicalAnd
LogicalOr
Reassignment
Break
Fields
break_token: BreakToken
Continue
Fields
continue_token: ContinueToken
Implementations
sourceimpl Expr
impl Expr
pub fn try_into_assignable(self) -> Result<Assignable, Expr>
pub fn is_control_flow(&self) -> bool
Trait Implementations
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more