pub enum DExpr {
Show 24 variants
Col(String),
LitInt(i64),
LitFloat(f64),
LitBool(bool),
LitStr(String),
BinOp {
op: DBinOp,
left: Box<DExpr>,
right: Box<DExpr>,
},
Agg(AggFunc, Box<DExpr>),
Count,
FnCall(String, Vec<DExpr>),
CumSum(Box<DExpr>),
CumProd(Box<DExpr>),
CumMax(Box<DExpr>),
CumMin(Box<DExpr>),
Lag(Box<DExpr>, usize),
Lead(Box<DExpr>, usize),
Rank(Box<DExpr>),
DenseRank(Box<DExpr>),
RowNumber,
RollingSum(String, usize),
RollingMean(String, usize),
RollingMin(String, usize),
RollingMax(String, usize),
RollingVar(String, usize),
RollingSd(String, usize),
}Expand description
An expression in the Data DSL.
Variants§
Col(String)
Column reference: col(“name”)
LitInt(i64)
Literal integer
LitFloat(f64)
Literal float
LitBool(bool)
Literal bool
LitStr(String)
Literal string
BinOp
Binary operation
Agg(AggFunc, Box<DExpr>)
Aggregation function
Count
Count (no argument)
FnCall(String, Vec<DExpr>)
Named function call: FnCall(“log”, vec![Col(“x”)])
CumSum(Box<DExpr>)
Cumulative sum (window)
CumProd(Box<DExpr>)
Cumulative product (window)
CumMax(Box<DExpr>)
Cumulative max (window)
CumMin(Box<DExpr>)
Cumulative min (window)
Lag(Box<DExpr>, usize)
Lag(expr, k): value at row i-k, or NaN if i < k
Lead(Box<DExpr>, usize)
Lead(expr, k): value at row i+k, or NaN if i+k >= n
Rank(Box<DExpr>)
Rank of values (1-based, average ties)
DenseRank(Box<DExpr>)
Dense rank (1-based, no gaps)
RowNumber
Row number (1-indexed sequential)
RollingSum(String, usize)
Rolling sum over a fixed-size window (Kahan-compensated removable accumulation)
RollingMean(String, usize)
Rolling mean over a fixed-size window
RollingMin(String, usize)
Rolling minimum over a fixed-size window (monotonic deque, O(n) amortized)
RollingMax(String, usize)
Rolling maximum over a fixed-size window (monotonic deque, O(n) amortized)
RollingVar(String, usize)
Rolling variance over a fixed-size window (Welford’s online with removal)
RollingSd(String, usize)
Rolling standard deviation over a fixed-size window
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DExpr
impl RefUnwindSafe for DExpr
impl Send for DExpr
impl Sync for DExpr
impl Unpin for DExpr
impl UnsafeUnpin for DExpr
impl UnwindSafe for DExpr
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
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>
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>
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