Module differential_dataflow::trace::wrappers::freeze

source ·
Expand description

Wrappers to transform the timestamps of updates.

These wrappers are primarily intended to support the re-use of a multi-version index as if it were frozen at a particular (nested) timestamp. For example, if one wants to re-use an index multiple times with minor edits, and only observe the edits at one logical time (meaning: observing all edits less or equal to that time, advanced to that time), this should allow that behavior.

Informally, this wrapper is parameterized by a function F: Fn(&T)->Option<T> which provides the opportunity to alter the time at which an update happens and to suppress that update, if appropriate. For example, the function

|t| if t.inner <= 10 { let mut t = t.clone(); t.inner = 10; Some(t) } else { None }

could be used to present all updates through inner iteration 10, but advanced to inner iteration 10, as if they all occurred exactly at that moment.

Structs§

Functions§

  • Freezes updates to an arrangement using a supplied function.