Skip to main content

Extractor

Trait Extractor 

Source
pub trait Extractor: Merger {
    type Time;

    // Required method
    fn extract(
        &mut self,
        merged: Vec<Self::Chunk>,
        upper: AntichainRef<'_, Self::Time>,
        frontier: &mut Antichain<Self::Time>,
        readied: &mut Vec<Self::Chunk>,
        kept: &mut Vec<Self::Chunk>,
        stash: &mut Vec<Self::Chunk>,
    );
}
Expand description

A Merger that can also split a chain apart by time, as the merge batcher extracts.

Required Associated Types§

Source

type Time

The type of time in frontiers to extract updates.

Required Methods§

Source

fn extract( &mut self, merged: Vec<Self::Chunk>, upper: AntichainRef<'_, Self::Time>, frontier: &mut Antichain<Self::Time>, readied: &mut Vec<Self::Chunk>, kept: &mut Vec<Self::Chunk>, stash: &mut Vec<Self::Chunk>, )

Extract ready updates based on the upper frontier.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl<C> Extractor for ChunkMerger<C>
where C: Chunk + Default + 'static, C::Time: Clone + PartialOrder + 'static,

Source§

type Time = <C as Chunk>::Time

Source§

impl<D, T, R> Extractor for VecMerger<D, T, R>
where D: Ord + Clone + 'static, T: Ord + Clone + PartialOrder + 'static, R: Semigroup + 'static,

Source§

type Time = T