pub struct DeclaredAggregateFn { /* private fields */ }Expand description
A Cypher-declared aggregate function.
Holds three pre-parsed Expr bodies (init, update,
finalize), the positional argument names of the update body,
the declared return type, and a precomputed AggSignature.
Implementations§
Source§impl DeclaredAggregateFn
impl DeclaredAggregateFn
Sourcepub fn new(
init_expr: Expr,
update_expr: Expr,
finalize_expr: Expr,
arg_names: Vec<String>,
return_dt: DataType,
) -> Self
pub fn new( init_expr: Expr, update_expr: Expr, finalize_expr: Expr, arg_names: Vec<String>, return_dt: DataType, ) -> Self
Construct a declared aggregate from pre-parsed Cypher bodies.
Sourcepub fn build_signature(returns: DataType, arg_names: &[String]) -> AggSignature
pub fn build_signature(returns: DataType, arg_names: &[String]) -> AggSignature
Build a default AggSignature for a declared aggregate.
All update args are declared Utf8 (the M9 declared-scalar
convention — promotions happen at row-decode time). The returned
signature disables partial aggregation: state_fields is empty
and supports_partial = false.
Trait Implementations§
Source§impl AggregatePluginFn for DeclaredAggregateFn
impl AggregatePluginFn for DeclaredAggregateFn
Source§fn signature(&self) -> &AggSignature
fn signature(&self) -> &AggSignature
Static signature.
Source§fn create_accumulator(&self) -> Box<dyn PluginAccumulator>
fn create_accumulator(&self) -> Box<dyn PluginAccumulator>
Construct a fresh per-group accumulator.
Auto Trait Implementations§
impl Freeze for DeclaredAggregateFn
impl RefUnwindSafe for DeclaredAggregateFn
impl Send for DeclaredAggregateFn
impl Sync for DeclaredAggregateFn
impl Unpin for DeclaredAggregateFn
impl UnsafeUnpin for DeclaredAggregateFn
impl UnwindSafe for DeclaredAggregateFn
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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