Skip to main content

NavigableChunk

Trait NavigableChunk 

Source
pub trait NavigableChunk: Chunk + Navigable<Cursor: Cursor<Time = <Self as Chunk>::Time>> {
    // Required method
    fn bounds(
        &self,
    ) -> ((<Self::Cursor as Cursor>::Key<'_>, <Self::Cursor as Cursor>::Val<'_>, <Self::Cursor as Cursor>::TimeGat<'_>), (<Self::Cursor as Cursor>::Key<'_>, <Self::Cursor as Cursor>::Val<'_>, <Self::Cursor as Cursor>::TimeGat<'_>));
}
Expand description

The navigation capability: a Chunk whose contents can be read by cursor.

This is optional. Batch formation and trace maintenance need only Chunk; implementing this trait additionally lets ChunkBatch offer the straddle cursor (ChunkBatchCursor), which is how cursor-driven operator paths read an arrangement. Chunks consumed only by whole-chunk logic (tactics) can skip it.

bounds must stay cheap even when a chunk’s body is paged out: the straddle cursor consults chunk bounds throughout navigation — seeks binary-search them, boundary crossings compare against them — and opens a chunk’s body only when a query touches it.

Required Methods§

Source

fn bounds( &self, ) -> ((<Self::Cursor as Cursor>::Key<'_>, <Self::Cursor as Cursor>::Val<'_>, <Self::Cursor as Cursor>::TimeGat<'_>), (<Self::Cursor as Cursor>::Key<'_>, <Self::Cursor as Cursor>::Val<'_>, <Self::Cursor as Cursor>::TimeGat<'_>))

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

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

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§

impl<U: ColumnarUpdate> NavigableChunk for ColChunk<U>
where U::Time: 'static,