Skip to main content

ProxyJoinBackend

Trait ProxyJoinBackend 

Source
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§

Source

type R0: Semigroup + Multiply<Self::R1, Output = Self::ROut>

Diff type presented for the first input.

Source

type R1: Semigroup

Diff type presented for the second input.

Source

type ROut: Semigroup

Diff type of matched records (R0 * R1), computed by the tactic.

Source

type Output

The output container built from matched value ids.

Required Methods§

Source

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).

Source

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).

Source

fn cross( &mut self, instance: &JoinInstance<'_, B0, B1>, left: &[(u64, u64)], right: &[(u64, u64)], times: Vec<B0::Time>, diffs: Vec<Self::ROut>, ) -> Self::Output

From a list of left and right identifiers, and corresponding times and diffs, the output.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§