pub enum Expr {
Literal(Literal),
Path(Vec<String>),
Not(Box<Spanned<Expr>>),
BinOp(BinOp, Box<Spanned<Expr>>, Box<Spanned<Expr>>),
Ternary(Box<Spanned<Expr>>, Box<Spanned<Expr>>, Box<Spanned<Expr>>),
Call(String, Vec<Spanned<Expr>>),
Assign(Vec<String>, Box<Spanned<Expr>>),
Seq(Vec<Spanned<Expr>>),
}Variants§
Literal(Literal)
Path(Vec<String>)
Dotted path segments, already split: "foo.bar.baz" →
vec!["foo", "bar", "baz"].
Not(Box<Spanned<Expr>>)
BinOp(BinOp, Box<Spanned<Expr>>, Box<Spanned<Expr>>)
Ternary(Box<Spanned<Expr>>, Box<Spanned<Expr>>, Box<Spanned<Expr>>)
Call(String, Vec<Spanned<Expr>>)
ident(arg, arg, ...) — invokes a handler on the scope.
RFC-024. Handlers resolve via invoke_handler; the name is
a single identifier, not a path.
Assign(Vec<String>, Box<Spanned<Expr>>)
path = expr — writes expr through the scope proxy’s
set trap at path. RFC-024. path is one or more dotted
identifiers.
Seq(Vec<Spanned<Expr>>)
a; b; c — evaluated left-to-right; result is the last
statement’s value. RFC-024. Top-level form for pp-on
values containing multiple statements.
Trait Implementations§
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