Trait differential_dataflow::collection::trace::Trace [] [src]

pub trait Trace where
    &'a Self: TraceRef<'a, Self::Key, Self::Index, Self::Value>, 
{ type Key: Data; type Index: Lattice; type Value: Data; fn set_difference(
        &mut self,
        time: Self::Index,
        accumulation: Compact<Self::Key, Self::Value>
    ); fn trace<'a>(
        &'a self,
        key: &Self::Key
    ) -> <&'a Self as TraceRef<'a, Self::Key, Self::Index, Self::Value>>::TIterator { ... } fn get_difference<'a>(
        &'a self,
        key: &Self::Key,
        time: &Self::Index
    ) -> Option<<&'a Self as TraceRef<'a, Self::Key, Self::Index, Self::Value>>::VIterator> { ... } fn get_collection<'a>(
        &'a mut self,
        key: &Self::Key,
        time: &Self::Index
    ) -> CollectionIterator<<&'a Self as TraceRef<'a, Self::Key, Self::Index, Self::Value>>::VIterator> { ... } fn interesting_times<'a>(
        &'a self,
        key: &Self::Key,
        time: &Self::Index,
        stash: &mut Vec<Self::Index>
    ) { ... } }

A collection trace, corresponding to quadruples (Key, Index, Value, Delta).

Associated Types

The data-parallel key.

Timestamp for changes to the collection.

Values associated with each key.

Required Methods

Introduces differences in accumulation at time.

Provided Methods

Iterates over times and differences for a specified key.

Iterates over differences for a specified key and time.

Accumulates differences for key at times less than or equal to time.

The &mut self argument allows the trace to use stashed storage for a merge. This is currently not done, because it appears to require unsafe (the storage type involves a &'a, which cannot outlive this method).

Populates stash with times for key, closes under least upper bound.

Implementors