pub trait InternalMerge:
Accountable
+ SizableContainer
+ Default {
type TimeOwned;
// Required methods
fn len(&self) -> usize;
fn clear(&mut self);
fn merge_from(&mut self, others: &mut [Self], positions: &mut [usize]);
fn extract(
&mut self,
upper: AntichainRef<'_, Self::TimeOwned>,
frontier: &mut Antichain<Self::TimeOwned>,
keep: &mut Self,
ship: &mut Self,
);
// Provided method
fn account(&self) -> (usize, usize, usize, usize) { ... }
}Expand description
A container that supports the operations needed by the merge batcher: merging sorted chains and extracting updates by time.
Required Associated Types§
Required Methods§
Sourcefn merge_from(&mut self, others: &mut [Self], positions: &mut [usize])
fn merge_from(&mut self, others: &mut [Self], positions: &mut [usize])
Merge items from sorted inputs into self, advancing positions.
Merges until self is at capacity or all inputs are exhausted.
Dispatches based on the number of inputs:
- 0: no-op
- 1: bulk copy (may swap the input into
self) - 2: merge two sorted streams
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.