pub enum ExprKind {
Show 34 variants
Int(i64),
Float(f64),
Unit {
value: String,
unit: String,
},
Str(Vec<StrSeg>),
RawStr(String),
Char(char),
Text(String),
Content {
kind: String,
id: String,
},
Tag(String),
Bool(bool),
Null,
Ident(String),
This,
It,
Mc(VersionCond),
Tuple(Vec<Expr>),
Collection(Vec<Element>),
New {
ty: Option<Type>,
args: Option<Vec<Arg>>,
init: Vec<(Name, Expr)>,
},
Lambda {
params: Vec<LambdaParam>,
body: LambdaBody,
},
Unary {
op: UnOp,
expr: Box<Expr>,
},
Cast {
ty: Type,
expr: Box<Expr>,
},
Binary {
op: BinOp,
left: Box<Expr>,
right: Box<Expr>,
},
Range {
from: Box<Expr>,
to: Box<Expr>,
inclusive: bool,
},
Is {
expr: Box<Expr>,
pattern: Box<Pattern>,
},
As {
expr: Box<Expr>,
ty: Type,
},
Has {
expr: Box<Expr>,
ty: Type,
},
Conditional {
cond: Box<Expr>,
then: Box<Expr>,
otherwise: Box<Expr>,
},
Switch {
expr: Box<Expr>,
arms: Vec<Arm>,
},
Call {
callee: Box<Expr>,
args: Vec<Arg>,
},
Index {
expr: Box<Expr>,
index: Box<Expr>,
},
TypeArgs {
expr: Box<Expr>,
args: Vec<Type>,
},
Member {
expr: Box<Expr>,
name: Name,
safe: bool,
},
NotNull(Box<Expr>),
Error,
}Variants§
Int(i64)
Float(f64)
Unit
Str(Vec<StrSeg>)
RawStr(String)
Char(char)
Text(String)
Content
Tag(String)
Bool(bool)
Null
Ident(String)
This
It
Mc(VersionCond)
mc >= 1.21: the running game’s version.
Tuple(Vec<Expr>)
Collection(Vec<Element>)
[a, b], [k => v], [..xs]: a list, a set or a map by its target.
New
new Pos(1, 2, 3), new(4), new Battery { Count = 2 }.
Lambda
x => …, (a, b) => …, { … } after a call (it its parameter).
Unary
Cast
(int)x.
Binary
Range
Is
x is Monster m, x is not null.
As
x as T: null when it isn’t one.
Has
x has Charge.
Conditional
c ? a : b.
Switch
x switch { … }.
Call
Index
TypeArgs
f<T, U> before a call: the type arguments.
Member
x.Name, x?.Name.
NotNull(Box<Expr>)
x!: asserted not null.
Error
What couldn’t be parsed (reported already).
Trait Implementations§
impl StructuralPartialEq for ExprKind
Auto Trait Implementations§
impl Freeze for ExprKind
impl RefUnwindSafe for ExprKind
impl Send for ExprKind
impl Sync for ExprKind
impl Unpin for ExprKind
impl UnsafeUnpin for ExprKind
impl UnwindSafe for ExprKind
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