pub enum ElixirExpr {
Show 20 variants
Atom(String),
Integer(i64),
Float(f64),
Binary(String),
List(Vec<ElixirExpr>),
Tuple(Vec<ElixirExpr>),
Map(Vec<(ElixirExpr, ElixirExpr)>),
Var(String),
FuncCall(String, Vec<ElixirExpr>),
Match(Box<ElixirExpr>, Box<ElixirExpr>),
Case(Box<ElixirExpr>, Vec<(ElixirExpr, ElixirExpr)>),
Lambda(Vec<String>, Box<ElixirExpr>),
Pipe(Box<ElixirExpr>, Box<ElixirExpr>),
Block(Vec<ElixirExpr>),
If(Box<ElixirExpr>, Box<ElixirExpr>, Box<ElixirExpr>),
BinOp(String, Box<ElixirExpr>, Box<ElixirExpr>),
Interpolation(Vec<ElixirStringPart>),
Nil,
Bool(bool),
Struct(String, Vec<(String, ElixirExpr)>),
}Expand description
An Elixir expression node used for code generation.
Variants§
Atom(String)
:atom literal
Integer(i64)
Integer literal
Float(f64)
Float literal
Binary(String)
Binary (string) literal: "hello"
List(Vec<ElixirExpr>)
List literal: [a, b, c]
Tuple(Vec<ElixirExpr>)
Tuple literal: {a, b}
Map(Vec<(ElixirExpr, ElixirExpr)>)
Map literal: %{key => val}
Var(String)
Variable reference
FuncCall(String, Vec<ElixirExpr>)
Function call: Module.func(args) or func(args)
Match(Box<ElixirExpr>, Box<ElixirExpr>)
Match expression: pattern = expr
Case(Box<ElixirExpr>, Vec<(ElixirExpr, ElixirExpr)>)
Case expression: case expr do clauses end
Lambda(Vec<String>, Box<ElixirExpr>)
Anonymous function: fn params -> body end
Pipe(Box<ElixirExpr>, Box<ElixirExpr>)
Pipe expression: lhs |> rhs
Block(Vec<ElixirExpr>)
Block of expressions (the last is the value)
If(Box<ElixirExpr>, Box<ElixirExpr>, Box<ElixirExpr>)
Conditional: if cond, do: then_branch, else: else_branch
BinOp(String, Box<ElixirExpr>, Box<ElixirExpr>)
Binary operator: lhs op rhs
Interpolation(Vec<ElixirStringPart>)
String interpolation: "prefix#{expr}suffix"
Nil
nil literal
Bool(bool)
Boolean literal
Struct(String, Vec<(String, ElixirExpr)>)
Struct literal: %StructName{field: val}
Trait Implementations§
Source§impl Clone for ElixirExpr
impl Clone for ElixirExpr
Source§fn clone(&self) -> ElixirExpr
fn clone(&self) -> ElixirExpr
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 ElixirExpr
impl RefUnwindSafe for ElixirExpr
impl Send for ElixirExpr
impl Sync for ElixirExpr
impl Unpin for ElixirExpr
impl UnsafeUnpin for ElixirExpr
impl UnwindSafe for ElixirExpr
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