[−][src]Trait differential_dataflow::trace::cursor::Cursor
A cursor for navigating ordered (key, val, time, diff)
updates.
Associated Types
type Storage
Type the cursor addresses data in.
Required methods
fn key_valid(&self, storage: &Self::Storage) -> bool
Indicates if the current key is valid.
A value of false
indicates that the cursor has exhausted all keys.
fn val_valid(&self, storage: &Self::Storage) -> bool
Indicates if the current value is valid.
A value of false
indicates that the cursor has exhausted all values for this key.
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
A reference to the current key. Asserts if invalid.
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
A reference to the current value. Asserts if invalid.
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
Applies logic
to each pair of time and difference. Intended for mutation of the
closure's scope.
fn step_key(&mut self, storage: &Self::Storage)
Advances the cursor to the next key.
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
Advances the cursor to the specified key.
fn step_val(&mut self, storage: &Self::Storage)
Advances the cursor to the next value.
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
Advances the cursor to the specified value.
fn rewind_keys(&mut self, storage: &Self::Storage)
Rewinds the cursor to the first key.
fn rewind_vals(&mut self, storage: &Self::Storage)
Rewinds the cursor to the first value for current key.
Provided methods
fn get_key<'a>(&self, storage: &'a Self::Storage) -> Option<&'a K>
Returns a reference to the current key, if valid.
fn get_val<'a>(&self, storage: &'a Self::Storage) -> Option<&'a V>
Returns a reference to the current value, if valid.
Implementors
impl<K, T, R, O> Cursor<K, (), T, R> for OrdKeyCursor<T, R, O> where
K: Ord + Clone,
T: Lattice + Ord + Clone,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
[src]
K: Ord + Clone,
T: Lattice + Ord + Clone,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
type Storage = OrdKeyBatch<K, T, R, O>
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, _storage: &'a Self::Storage) -> &'a ()
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, _storage: &Self::Storage) -> bool
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, _storage: &Self::Storage)
[src]
fn seek_val(&mut self, _storage: &Self::Storage, _val: &())
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, _storage: &Self::Storage)
[src]
impl<K, V, T, R, B: BatchReader<K, V, T, R> + Abomonation> Cursor<K, V, T, R> for AbomonatedBatchCursor<K, V, T, R, B>
[src]
type Storage = Abomonated<B, Vec<u8>>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, B: BatchReader<K, V, T, R>> Cursor<K, V, T, R> for RcBatchCursor<K, V, T, R, B>
[src]
type Storage = Rc<B>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, B: BatchReader<K, V, T, R>> Cursor<K, V, T, R> for BatchCursorFrontier<K, V, T, R, B> where
T: Timestamp + Lattice,
[src]
T: Timestamp + Lattice,
type Storage = BatchFrontier<K, V, T, R, B>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, B: BatchReader<K, V, T, R>, F> Cursor<K, V, T, R> for BatchCursorFilter<K, V, T, R, B, F> where
T: Timestamp,
F: FnMut(&K, &V) -> bool + 'static,
[src]
T: Timestamp,
F: FnMut(&K, &V) -> bool + 'static,
type Storage = BatchFilter<K, V, T, R, B, F>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, B: BatchReader<K, V, T, R>, F> Cursor<K, V, T, R> for BatchCursorFreeze<K, V, T, R, B, F> where
F: Fn(&T) -> Option<T>,
[src]
F: Fn(&T) -> Option<T>,
type Storage = BatchFreeze<K, V, T, R, B, F>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C> Cursor<K, V, T, R> for CursorFrontier<K, V, T, R, C> where
C: Cursor<K, V, T, R>,
T: Timestamp + Lattice,
[src]
C: Cursor<K, V, T, R>,
T: Timestamp + Lattice,
type Storage = C::Storage
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C, F> Cursor<K, V, T, R> for CursorFilter<K, V, T, R, C, F> where
C: Cursor<K, V, T, R>,
T: Timestamp,
F: FnMut(&K, &V) -> bool + 'static,
[src]
C: Cursor<K, V, T, R>,
T: Timestamp,
F: FnMut(&K, &V) -> bool + 'static,
type Storage = C::Storage
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C, F> Cursor<K, V, T, R> for CursorFreeze<K, V, T, R, C, F> where
C: Cursor<K, V, T, R>,
F: Fn(&T) -> Option<T>,
[src]
C: Cursor<K, V, T, R>,
F: Fn(&T) -> Option<T>,
type Storage = C::Storage
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C, TInner> Cursor<K, V, TInner, R> for differential_dataflow::trace::wrappers::enter::CursorEnter<K, V, T, R, C, TInner> where
C: Cursor<K, V, T, R>,
T: Timestamp,
TInner: Refines<T> + Lattice,
[src]
C: Cursor<K, V, T, R>,
T: Timestamp,
TInner: Refines<T> + Lattice,
type Storage = C::Storage
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&TInner, &R)>(
&mut self,
storage: &Self::Storage,
logic: L
)
[src]
&mut self,
storage: &Self::Storage,
logic: L
)
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C, TInner, F> Cursor<K, V, TInner, R> for differential_dataflow::trace::wrappers::enter_at::CursorEnter<K, V, T, R, C, TInner, F> where
C: Cursor<K, V, T, R>,
T: Timestamp,
TInner: Refines<T> + Lattice,
F: FnMut(&K, &V, &T) -> TInner,
[src]
C: Cursor<K, V, T, R>,
T: Timestamp,
TInner: Refines<T> + Lattice,
F: FnMut(&K, &V, &T) -> TInner,
type Storage = C::Storage
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&TInner, &R)>(
&mut self,
storage: &Self::Storage,
logic: L
)
[src]
&mut self,
storage: &Self::Storage,
logic: L
)
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C1, C2> Cursor<K, V, T, R> for CursorPair<C1, C2> where
K: Ord,
V: Ord,
C1: Cursor<K, V, T, R>,
C2: Cursor<K, V, T, R>,
[src]
K: Ord,
V: Ord,
C1: Cursor<K, V, T, R>,
C2: Cursor<K, V, T, R>,
type Storage = (C1::Storage, C2::Storage)
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, C: Cursor<K, V, T, R>> Cursor<K, V, T, R> for CursorList<K, V, T, R, C> where
K: Ord,
V: Ord,
[src]
K: Ord,
V: Ord,
type Storage = Vec<C::Storage>
fn key_valid(&self, _storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, _storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, O> Cursor<K, V, T, R> for OrdValCursor<V, T, R, O> where
K: Ord + Clone,
V: Ord + Clone,
T: Lattice + Ord + Clone,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
[src]
K: Ord + Clone,
V: Ord + Clone,
T: Lattice + Ord + Clone,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
type Storage = OrdValBatch<K, V, T, R, O>
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&T, &R)>(&mut self, storage: &Self::Storage, logic: L)
[src]
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, TInner, B: BatchReader<K, V, T, R>> Cursor<K, V, TInner, R> for differential_dataflow::trace::wrappers::enter::BatchCursorEnter<K, V, T, R, B, TInner> where
T: Timestamp,
TInner: Refines<T> + Lattice,
[src]
T: Timestamp,
TInner: Refines<T> + Lattice,
type Storage = BatchEnter<K, V, T, R, B, TInner>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&TInner, &R)>(
&mut self,
storage: &Self::Storage,
logic: L
)
[src]
&mut self,
storage: &Self::Storage,
logic: L
)
fn step_key(&mut self, storage: &Self::Storage)
[src]
fn seek_key(&mut self, storage: &Self::Storage, key: &K)
[src]
fn step_val(&mut self, storage: &Self::Storage)
[src]
fn seek_val(&mut self, storage: &Self::Storage, val: &V)
[src]
fn rewind_keys(&mut self, storage: &Self::Storage)
[src]
fn rewind_vals(&mut self, storage: &Self::Storage)
[src]
impl<K, V, T, R, TInner, B: BatchReader<K, V, T, R>, F> Cursor<K, V, TInner, R> for differential_dataflow::trace::wrappers::enter_at::BatchCursorEnter<K, V, T, R, B, TInner, F> where
T: Timestamp,
TInner: Refines<T> + Lattice,
F: FnMut(&K, &V, &T) -> TInner,
[src]
T: Timestamp,
TInner: Refines<T> + Lattice,
F: FnMut(&K, &V, &T) -> TInner,
type Storage = BatchEnter<K, V, T, R, B, TInner, F>
fn key_valid(&self, storage: &Self::Storage) -> bool
[src]
fn val_valid(&self, storage: &Self::Storage) -> bool
[src]
fn key<'a>(&self, storage: &'a Self::Storage) -> &'a K
[src]
fn val<'a>(&self, storage: &'a Self::Storage) -> &'a V
[src]
fn map_times<L: FnMut(&TInner, &R)>(
&mut self,
storage: &Self::Storage,
logic: L
)
[src]
&mut self,
storage: &Self::Storage,
logic: L
)