pub trait BinaryAggregate:
Debug
+ Copy
+ Sync
+ Send
+ Sized
+ 'static {
type Input1: ScalarStorage;
type Input2: ScalarStorage;
type Output: MutableScalarStorage;
type BindState: Sync + Send;
type GroupState: for<'a> AggregateState<(&'a <Self::Input1 as ScalarStorage>::StorageType, &'a <Self::Input2 as ScalarStorage>::StorageType), <Self::Output as ScalarStorage>::StorageType, BindState = Self::BindState>;
// Required methods
fn bind(
&self,
inputs: Vec<Expression>,
) -> Result<BindState<Self::BindState>>;
fn new_aggregate_state(state: &Self::BindState) -> Self::GroupState;
}Required Associated Types§
type Input1: ScalarStorage
type Input2: ScalarStorage
type Output: MutableScalarStorage
type BindState: Sync + Send
type GroupState: for<'a> AggregateState<(&'a <Self::Input1 as ScalarStorage>::StorageType, &'a <Self::Input2 as ScalarStorage>::StorageType), <Self::Output as ScalarStorage>::StorageType, BindState = Self::BindState>
Required Methods§
fn bind(&self, inputs: Vec<Expression>) -> Result<BindState<Self::BindState>>
fn new_aggregate_state(state: &Self::BindState) -> Self::GroupState
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".