differential_dataflow::trace::implementations::merge_batcher::container

Struct ContainerMerger

Source
pub struct ContainerMerger<MC, CQ> { /* private fields */ }
Expand description

A merger for arbitrary containers.

MC is a Container that implements MergerChunk. CQ is a ContainerQueue supporting MC.

Trait Implementations§

Source§

impl<MC, CQ> Default for ContainerMerger<MC, CQ>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<MC, CQ> Merger for ContainerMerger<MC, CQ>
where for<'a> MC: MergerChunk + Clone + PushInto<<MC as Container>::Item<'a>> + 'static, for<'a> MC::TimeOwned: Ord + PartialOrder + Data, CQ: ContainerQueue<MC>,

Source§

fn account(chunk: &Self::Chunk) -> (usize, usize, usize, usize)

Account the allocations behind the chunk.

Source§

type Time = <MC as MergerChunk>::TimeOwned

The type of time in frontiers to extract updates.
Source§

type Chunk = MC

The internal representation of chunks of data.
Source§

fn merge( &mut self, list1: Vec<Self::Chunk>, list2: Vec<Self::Chunk>, output: &mut Vec<Self::Chunk>, stash: &mut Vec<Self::Chunk>, )

Merge chains into an output chain.
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.

Auto Trait Implementations§

§

impl<MC, CQ> Freeze for ContainerMerger<MC, CQ>

§

impl<MC, CQ> RefUnwindSafe for ContainerMerger<MC, CQ>

§

impl<MC, CQ> Send for ContainerMerger<MC, CQ>
where MC: Send, CQ: Send,

§

impl<MC, CQ> Sync for ContainerMerger<MC, CQ>
where MC: Sync, CQ: Sync,

§

impl<MC, CQ> Unpin for ContainerMerger<MC, CQ>
where MC: Unpin, CQ: Unpin,

§

impl<MC, CQ> UnwindSafe for ContainerMerger<MC, CQ>
where MC: UnwindSafe, CQ: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CopyAs<T> for T

Source§

fn copy_as(self) -> T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, S, T> Semigroup<&'a S> for T
where T: Semigroup<S>,

Source§

fn plus_equals(&mut self, rhs: &&'a S)

The method of std::ops::AddAssign, for types that do not implement AddAssign.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.