Skip to main content

Navigable

Trait Navigable 

Source
pub trait Navigable {
    type Cursor: Cursor<Storage = Self>;

    // Required method
    fn cursor(&self) -> Self::Cursor;
}
Expand description

A batch type that has a cursor for navigation.

This is the entry point for accessing batch data through cursors, and the place that opinions about keys and values are introduced (via the Cursor associated type). Cut-and-merge assembly is the trace’s concern: TraceReader::batches_through selects the batches and the defaulted TraceReader::cursor_through builds a CursorList over their per-batch cursors.

Required Associated Types§

Source

type Cursor: Cursor<Storage = Self>

The cursor type.

The cursor carries the layout opinions (keys, values, containers); a Navigable type only promises that it can produce one.

Required Methods§

Source

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

Acquire a cursor suitable for the instance.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<B: BatchReader + Navigable> Navigable for Rc<B>

Source§

type Cursor = RcBatchCursor<<B as Navigable>::Cursor>

The type used to enumerate the batch’s contents.

Source§

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

Acquires a cursor to the batch’s contents.

Implementors§

Source§

impl<B, TInner, F> Navigable for differential_dataflow::trace::wrappers::enter_at::BatchEnter<B, TInner, F>
where B: BatchReader + Navigable, TInner: Refines<B::Time> + Lattice + Refines<<B::Cursor as Cursor>::Time>, F: FnMut(<B::Cursor as Cursor>::Key<'_>, <B::Cursor as Cursor>::Val<'_>, <B::Cursor as Cursor>::TimeGat<'_>) -> TInner + Clone,

Source§

type Cursor = BatchCursorEnter<<B as Navigable>::Cursor, TInner, F>

Source§

impl<B, TInner> Navigable for differential_dataflow::trace::wrappers::enter::BatchEnter<B, TInner>
where B: BatchReader + Navigable, TInner: Refines<B::Time> + Lattice + Refines<<B::Cursor as Cursor>::Time>,

Source§

impl<B> Navigable for BatchFrontier<B>
where B: BatchReader + Navigable, B::Cursor: Cursor<Time = B::Time>,

Source§

impl<C: NavigableChunk> Navigable for ChunkBatch<C>

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>

Source§

impl<L: Layout<ValContainer: BatchContainer<Owned: Default>>> Navigable for OrdKeyBatch<L>

Source§

impl<L: Layout> Navigable for OrdValBatch<L>

Source§

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