Skip to main content

VecChunk

Struct VecChunk 

Source
pub struct VecChunk<K, V, T, R>(/* private fields */);
Expand description

A sorted, consolidated run of ((key, val), time, diff), shared via Rc.

Trait Implementations§

Source§

impl<K: 'static, V: 'static, T: 'static, R: 'static> Accountable for VecChunk<K, V, T, R>

Source§

fn record_count(&self) -> i64

The number of records Read more
Source§

fn is_empty(&self) -> bool

Determine if this contains any updates, corresponding to update_count() == 0. It is a correctness error for this to be anything other than self.record_count() == 0.
Source§

impl<K, V, T, R> Chunk for VecChunk<K, V, T, R>
where K: Ord + Clone + 'static, V: Ord + Clone + 'static, T: Lattice + Timestamp, R: Ord + Semigroup + 'static,

Source§

fn merge( in1: &mut VecDeque<Self>, in2: &mut VecDeque<Self>, out: &mut VecDeque<Self>, )

A two-pointer binary merge of the two deques’ loaded content, up to their shared horizon — the lesser of the two last (key, val, time)s. Consolidates equal triples and bulk-copies disjoint runs as slices, walking chunk boundaries with local indices. The horizon’s owner drains fully; the other’s partial front is pruned and pushed back once, at the yield.

Source§

fn settle(input: &mut VecDeque<Self>, done: bool, out: &mut VecDeque<Self>)

Maximal packing via the harness pack: coalesce by extending the inner Vec in place (make_mut is free while the carry’s Rc is unique, so packing a run of small chunks stays linear), split with split_off, and seal as a no-op (Vec chunks are never paged).

Source§

const TARGET: usize = TARGET

The intended maximum chunk size.
Source§

type Time = <<Vector<((K, V), T, R)> as Layout>::TimeContainer as BatchContainer>::Owned

The timestamp type of the chunk’s updates. Read more
Source§

fn len(&self) -> usize

The number of updates in the chunk.
Source§

fn extract( input: &mut VecDeque<Self>, frontier: AntichainRef<'_, T>, residual: &mut Antichain<T>, keep: &mut VecDeque<Self>, ship: &mut VecDeque<Self>, )

Partition input updates into keep (greater or equal frontier) or not (ship). Read more
Source§

fn advance( input: &mut VecDeque<Self>, frontier: AntichainRef<'_, T>, done: bool, out: &mut VecDeque<Self>, )

Advance times by frontier producing consolidated chunks. Read more
Source§

impl<K, V, T, R> Clone for VecChunk<K, V, T, R>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<K, V, T, R> Consolidate for VecChunk<K, V, T, R>
where K: Ord + Clone + 'static, V: Ord + Clone + 'static, T: Ord + Clone + 'static, R: Semigroup + 'static,

Source§

fn len(&self) -> usize

The number of elements in the container.
Source§

fn clear(&mut self)

Clear the container.
Source§

fn consolidate_into(&mut self, target: &mut Self)

Sort and consolidate self into target.
Source§

impl<K, V, T, R> Default for VecChunk<K, V, T, R>

Source§

fn default() -> Self

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

impl<K, V, T, R> Navigable for VecChunk<K, V, T, R>
where K: Ord + Clone + 'static, V: Ord + Clone + 'static, T: Lattice + Timestamp, R: Ord + Semigroup + 'static,

Source§

type Cursor = VecChunkCursor<K, V, T, R>

The cursor type. Read more
Source§

fn cursor(&self) -> Self::Cursor

Acquire a cursor suitable for the instance.
Source§

impl<K, V, T, R> NavigableChunk for VecChunk<K, V, T, R>
where K: Ord + Clone + 'static, V: Ord + Clone + 'static, T: Lattice + Timestamp, R: Ord + Semigroup + 'static,

Source§

fn bounds(&self) -> ((&K, &V, &T), (&K, &V, &T))

The first and last (key, val, time) triples in the chunk.
Source§

impl<K, V, T, R> PushInto<((K, V), T, R)> for VecChunk<K, V, T, R>
where K: Clone + 'static, V: Clone + 'static, T: Clone + 'static, R: Clone + 'static,

Source§

fn push_into(&mut self, item: ((K, V), T, R))

Push item into self.
Source§

impl<K, V, T, R> SizableContainer for VecChunk<K, V, T, R>
where K: Clone + 'static, V: Clone + 'static, T: Clone + 'static, R: Clone + 'static,

Source§

fn at_capacity(&self) -> bool

Indicates that the container is “full” and should be shipped.
Source§

fn ensure_capacity(&mut self, _stash: &mut Option<Self>)

Restores self to its desired capacity, if it has one. Read more
Source§

impl<K, V, T, R> WithLayout for VecChunk<K, V, T, R>
where K: Ord + Clone + 'static, V: Ord + Clone + 'static, T: Lattice + Timestamp, R: Ord + Semigroup + 'static,

Source§

type Layout = Vector<((K, V), T, R)>

The layout.

Auto Trait Implementations§

§

impl<K, V, T, R> !Send for VecChunk<K, V, T, R>

§

impl<K, V, T, R> !Sync for VecChunk<K, V, T, R>

§

impl<K, V, T, R> Freeze for VecChunk<K, V, T, R>

§

impl<K, V, T, R> RefUnwindSafe for VecChunk<K, V, T, R>

§

impl<K, V, T, R> Unpin for VecChunk<K, V, T, R>

§

impl<K, V, T, R> UnsafeUnpin for VecChunk<K, V, T, R>

§

impl<K, V, T, R> UnwindSafe for VecChunk<K, V, T, R>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<C> Container for C
where C: Accountable + Default + 'static,

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<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.