pub enum Expression {
Show 17 variants
IntLiteral(i64),
FloatLiteral(f64),
StringLiteral(String),
BoolLiteral(bool),
NullLiteral,
ArrayLiteral(Vec<Expression>),
ObjectLiteral(Vec<(String, Expression)>),
Range {
start: Box<Expression>,
end: Box<Expression>,
},
Variable(String),
Binary {
op: BinaryOp,
left: Box<Expression>,
right: Box<Expression>,
},
Unary {
op: UnaryOp,
operand: Box<Expression>,
},
Ternary {
condition: Box<Expression>,
then_expr: Box<Expression>,
else_expr: Box<Expression>,
},
ToolCall {
name: String,
args: Vec<Argument>,
},
Lambda {
params: Vec<String>,
body: Box<Expression>,
},
FieldAccess {
object: Box<Expression>,
field: String,
},
IndexAccess {
array: Box<Expression>,
index: Box<Expression>,
},
Grouping(Box<Expression>),
}Expand description
Expressions
Variants§
IntLiteral(i64)
Integer literal expression
FloatLiteral(f64)
Floating-point literal expression
StringLiteral(String)
String literal expression
BoolLiteral(bool)
Boolean literal expression
NullLiteral
Null literal expression
ArrayLiteral(Vec<Expression>)
Array literal expression
ObjectLiteral(Vec<(String, Expression)>)
Object literal expression with key-value pairs
Range
Range expression [start..end]
Fields
start: Box<Expression>Start expression of the range
end: Box<Expression>End expression of the range (exclusive)
Variable(String)
Variable reference expression
Binary
Binary operation expression
Unary
Unary operation expression
Ternary
Ternary conditional expression
Fields
condition: Box<Expression>Condition expression to evaluate
then_expr: Box<Expression>Expression to evaluate if condition is true
else_expr: Box<Expression>Expression to evaluate if condition is false
ToolCall
Tool or function call
Fields
Lambda
Lambda function expression (x => x * 2)
Fields
body: Box<Expression>Body expression of the lambda
FieldAccess
Field access expression (object.field)
IndexAccess
Index access expression (array[index])
Fields
array: Box<Expression>Array or collection being indexed
index: Box<Expression>Index expression
Grouping(Box<Expression>)
Grouping expression with parentheses (expr)
Trait Implementations§
Source§impl Clone for Expression
impl Clone for Expression
Source§fn clone(&self) -> Expression
fn clone(&self) -> Expression
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more