pub enum Expression {
Variable(String),
Move {
inner: Box<Expression>,
kind: MoveKind,
},
Dereference(Box<Expression>),
AddressOf(Box<Expression>),
FunctionCall {
name: String,
args: Vec<Expression>,
},
Literal(String),
StringLiteral(String),
BinaryOp {
left: Box<Expression>,
op: String,
right: Box<Expression>,
},
MemberAccess {
object: Box<Expression>,
field: String,
},
Lambda {
captures: Vec<LambdaCaptureKind>,
},
Cast(Box<Expression>),
}Variants§
Variable(String)
Move
Dereference(Box<Expression>)
AddressOf(Box<Expression>)
FunctionCall
Literal(String)
StringLiteral(String)
String literal expression (“hello”, L“wide“, u8“utf8“, etc.) String literals are safe in @safe code because they have static lifetime. They cannot dangle because they’re stored in .rodata (read-only data segment).
BinaryOp
MemberAccess
Lambda
Fields
§
captures: Vec<LambdaCaptureKind>Cast(Box<Expression>)
Trait Implementations§
Source§impl Clone for Expression
impl Clone for Expression
Source§fn clone(&self) -> Expression
fn clone(&self) -> Expression
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for Expression
impl RefUnwindSafe for Expression
impl Send for Expression
impl Sync for Expression
impl Unpin for Expression
impl UnwindSafe for Expression
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