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§
Sourcefn 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<'_>))
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".