pub enum Expr<'a> {
Show 14 variants
Literal(LitValue<'a>, Span),
Variable(&'a str, Span),
Unary {
op: UnaryOp,
rhs: Box<Expr<'a>>,
span: Span,
},
Binary {
op: BinOp,
lhs: Box<Expr<'a>>,
rhs: Box<Expr<'a>>,
span: Span,
},
Ternary {
cond: Box<Expr<'a>>,
then: Box<Expr<'a>>,
otherwise: Box<Expr<'a>>,
span: Span,
},
Cond {
arms: Vec<(Expr<'a>, Expr<'a>)>,
otherwise: Box<Expr<'a>>,
span: Span,
},
Call {
callee: Box<Expr<'a>>,
args: Vec<Expr<'a>>,
span: Span,
},
MethodCall {
recv: Box<Expr<'a>>,
method: &'a str,
args: Vec<Expr<'a>>,
lambda: Option<Box<Expr<'a>>>,
span: Span,
},
FieldAccess {
recv: Box<Expr<'a>>,
field: &'a str,
span: Span,
},
Index {
recv: Box<Expr<'a>>,
key: Box<Expr<'a>>,
bracket: bool,
span: Span,
},
ObjectLiteral(ObjectBody<'a>),
ListLiteral(Vec<Expr<'a>>, Span),
Lambda {
params: Vec<&'a str>,
body: LambdaBody<'a>,
span: Span,
},
SchemaInstance {
schema: &'a str,
schema_alias: Option<&'a str>,
body: ObjectBody<'a>,
span: Span,
},
}Variants§
Literal(LitValue<'a>, Span)
Variable(&'a str, Span)
Unary
Binary
Ternary
Cond
cond \n (bool -> value)+ else -> value \n end (D14). Left of each ->
must be Bool; else is mandatory. First true arm wins.
Call
MethodCall
Fields
FieldAccess
Index
List indexing xs[0] (bracket=true) or a dynamic object key
obj."#{name}" (bracket=false, D11). Brackets are forbidden on objects (E0318).
ObjectLiteral(ObjectBody<'a>)
ListLiteral(Vec<Expr<'a>>, Span)
Lambda
SchemaInstance
Only through new (D4)
schema_alias - an imported schema new mod.Name (D12)
Trait Implementations§
impl<'a> StructuralPartialEq for Expr<'a>
Auto Trait Implementations§
impl<'a> Freeze for Expr<'a>
impl<'a> RefUnwindSafe for Expr<'a>
impl<'a> Send for Expr<'a>
impl<'a> Sync for Expr<'a>
impl<'a> Unpin for Expr<'a>
impl<'a> UnsafeUnpin for Expr<'a>
impl<'a> UnwindSafe for Expr<'a>
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