Enum rtlola_parser::ast::ExpressionKind
source · [−]pub enum ExpressionKind {
Show 16 variants
Lit(Literal),
Ident(Ident),
StreamAccess(Box<Expression>, StreamAccessKind),
Default(Box<Expression>, Box<Expression>),
Offset(Box<Expression>, Offset),
DiscreteWindowAggregation {
expr: Box<Expression>,
duration: Box<Expression>,
wait: bool,
aggregation: WindowOperation,
},
SlidingWindowAggregation {
expr: Box<Expression>,
duration: Box<Expression>,
wait: bool,
aggregation: WindowOperation,
},
Binary(BinOp, Box<Expression>, Box<Expression>),
Unary(UnOp, Box<Expression>),
Ite(Box<Expression>, Box<Expression>, Box<Expression>),
ParenthesizedExpression(Option<Box<Parenthesis>>, Box<Expression>, Option<Box<Parenthesis>>),
MissingExpression,
Tuple(Vec<Expression>),
Field(Box<Expression>, Ident),
Method(Box<Expression>, FunctionName, Vec<Type>, Vec<Expression>),
Function(FunctionName, Vec<Type>, Vec<Expression>),
}Expand description
The Ast representation of a single expression
Variants
Lit(Literal)
A literal, e.g., 1, "foo"
Ident(Ident)
An identifier, e.g., foo
StreamAccess(Box<Expression>, StreamAccessKind)
Accessing a stream
Default(Box<Expression>, Box<Expression>)
A default expression, e.g., a.defaults(to: 0)
Offset(Box<Expression>, Offset)
An offset expression, e.g., a.offset(by: -1)
DiscreteWindowAggregation
Fields
expr: Box<Expression>The accesses stream
duration: Box<Expression>The duration of the window
wait: boolFlag to mark that the window returns only a value if the complete duration has passed
aggregation: WindowOperationThe aggregation function
A discrete window with a duration duration as an integer constant and aggregation function aggregation
SlidingWindowAggregation
Fields
expr: Box<Expression>The accesses stream
duration: Box<Expression>The duration of the window
wait: boolFlag to mark that the window returns only a value if the complete duration has passed
aggregation: WindowOperationThe aggregation function
A sliding window with duration duration and aggregation function aggregation
Binary(BinOp, Box<Expression>, Box<Expression>)
A binary operation (For example: a + b, a * b)
Unary(UnOp, Box<Expression>)
A unary operation (For example: !x, *x)
Ite(Box<Expression>, Box<Expression>, Box<Expression>)
An if-then-else expression
ParenthesizedExpression(Option<Box<Parenthesis>>, Box<Expression>, Option<Box<Parenthesis>>)
An expression enveloped in parentheses
MissingExpression
An expression was expected, e.g., after an operator like *
Tuple(Vec<Expression>)
A tuple expression
Field(Box<Expression>, Ident)
Access of a named (obj.foo) or unnamed (obj.0) struct field
Method(Box<Expression>, FunctionName, Vec<Type>, Vec<Expression>)
A method call, e.g., foo.bar(-1)
Function(FunctionName, Vec<Type>, Vec<Expression>)
A function call
Trait Implementations
sourceimpl Clone for ExpressionKind
impl Clone for ExpressionKind
sourcefn clone(&self) -> ExpressionKind
fn clone(&self) -> ExpressionKind
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for ExpressionKind
impl Debug for ExpressionKind
sourceimpl Hash for ExpressionKind
impl Hash for ExpressionKind
sourceimpl PartialEq<ExpressionKind> for ExpressionKind
impl PartialEq<ExpressionKind> for ExpressionKind
sourcefn eq(&self, other: &ExpressionKind) -> bool
fn eq(&self, other: &ExpressionKind) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &ExpressionKind) -> bool
fn ne(&self, other: &ExpressionKind) -> bool
This method tests for !=.
impl Eq for ExpressionKind
impl StructuralEq for ExpressionKind
impl StructuralPartialEq for ExpressionKind
Auto Trait Implementations
impl RefUnwindSafe for ExpressionKind
impl Send for ExpressionKind
impl Sync for ExpressionKind
impl Unpin for ExpressionKind
impl UnwindSafe for ExpressionKind
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more