pub enum ExpressionNode {
Constant(NumericValue),
Variable {
name: String,
var_type: String,
index: usize,
},
ArrayAccess {
array: Box<ExpressionNode>,
index: Box<ExpressionNode>,
},
BinaryOp {
left: Box<ExpressionNode>,
right: Box<ExpressionNode>,
operator: BinaryOperator,
},
UnaryOp {
operand: Box<ExpressionNode>,
operator: UnaryOperator,
},
FunctionCall {
function: String,
arguments: Vec<ExpressionNode>,
},
Reduction {
array: Box<ExpressionNode>,
operation: ReductionOperation,
axis: Option<usize>,
},
Conditional {
condition: Box<ExpressionNode>,
true_expr: Box<ExpressionNode>,
false_expr: Box<ExpressionNode>,
},
}Expand description
Expression tree node representing a computation
Variants§
Constant(NumericValue)
Constant value
Variable
Variable (input parameter)
ArrayAccess
Array access
BinaryOp
Binary operation
UnaryOp
Unary operation
FunctionCall
Function call
Reduction
Reduction operation (sum, mean, etc.)
Conditional
Conditional expression
Fields
§
condition: Box<ExpressionNode>§
true_expr: Box<ExpressionNode>§
false_expr: Box<ExpressionNode>Trait Implementations§
Source§impl Clone for ExpressionNode
impl Clone for ExpressionNode
Source§fn clone(&self) -> ExpressionNode
fn clone(&self) -> ExpressionNode
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 moreSource§impl Debug for ExpressionNode
impl Debug for ExpressionNode
Source§impl Hash for ExpressionNode
impl Hash for ExpressionNode
Source§impl PartialEq for ExpressionNode
impl PartialEq for ExpressionNode
impl StructuralPartialEq for ExpressionNode
Auto Trait Implementations§
impl Freeze for ExpressionNode
impl RefUnwindSafe for ExpressionNode
impl Send for ExpressionNode
impl Sync for ExpressionNode
impl Unpin for ExpressionNode
impl UnsafeUnpin for ExpressionNode
impl UnwindSafe for ExpressionNode
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more