pub trait ProxyJoinBackend<B0: BatchReader, B1: BatchReader<Time = B0::Time>> {
type R0: Semigroup + Multiply<Self::R1, Output = Self::ROut>;
type R1: Semigroup;
type ROut: Semigroup;
type Output;
// Required methods
fn present0(
&mut self,
instance: &JoinInstance<'_, B0, B1>,
filter: Option<&[u64]>,
) -> ProxyBridge<B0::Time, Self::R0>;
fn present1(
&mut self,
instance: &JoinInstance<'_, B0, B1>,
filter: Option<&[u64]>,
) -> ProxyBridge<B0::Time, Self::R1>;
fn cross(
&mut self,
instance: &JoinInstance<'_, B0, B1>,
left: &[(u64, u64)],
right: &[(u64, u64)],
times: Vec<B0::Time>,
diffs: Vec<Self::ROut>,
) -> Self::Output;
}Expand description
A type that can interpret and retire pairs of batches, joined by key hashes.
The protocol invokes the present* methods with the instance to produce the proxy collection,
and then returns with any number (including zero) calls to cross to produce outputs.
Required Associated Types§
Required Methods§
Sourcefn present0(
&mut self,
instance: &JoinInstance<'_, B0, B1>,
filter: Option<&[u64]>,
) -> ProxyBridge<B0::Time, Self::R0>
fn present0( &mut self, instance: &JoinInstance<'_, B0, B1>, filter: Option<&[u64]>, ) -> ProxyBridge<B0::Time, Self::R0>
Prepare a proxy bridge from the instance’s first input, optionally key-hash restricted.
The returned bridge must be sorted and consolidated by ((key_hash, value_id), time).
Sourcefn present1(
&mut self,
instance: &JoinInstance<'_, B0, B1>,
filter: Option<&[u64]>,
) -> ProxyBridge<B0::Time, Self::R1>
fn present1( &mut self, instance: &JoinInstance<'_, B0, B1>, filter: Option<&[u64]>, ) -> ProxyBridge<B0::Time, Self::R1>
Prepare a proxy bridge from the instance’s second input, optionally key-hash restricted.
The returned bridge must be sorted and consolidated by ((key_hash, value_id), time).
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".