pub struct TraceBox<K, V, T, R, Tr>where
T: Lattice + Ord + Clone + 'static,
Tr: TraceReader<K, V, T, R>,{
pub advance_frontiers: MutableAntichain<T>,
pub through_frontiers: MutableAntichain<T>,
pub trace: Tr,
/* private fields */
}Expand description
A wrapper around a trace which tracks the frontiers of all referees.
This is an internal type, unlikely to be useful to higher-level programs, but exposed just in case.
This type is equivalent to a RefCell, in that it wraps the mutable state that multiple referrers
may influence.
Fields
advance_frontiers: MutableAntichain<T>accumulated holds on times for advancement.
through_frontiers: MutableAntichain<T>accumulated holds on times for distinction.
trace: TrThe wrapped trace.
Implementations
sourceimpl<K, V, T, R, Tr> TraceBox<K, V, T, R, Tr>where
T: Lattice + Ord + Clone + 'static,
Tr: TraceReader<K, V, T, R>,
impl<K, V, T, R, Tr> TraceBox<K, V, T, R, Tr>where
T: Lattice + Ord + Clone + 'static,
Tr: TraceReader<K, V, T, R>,
sourcepub fn new(trace: Tr) -> Self
pub fn new(trace: Tr) -> Self
Moves an existing trace into a shareable trace wrapper.
The trace may already exist and have non-initial advance and distinguish frontiers. The boxing process will fish these out and make sure that they are used for the initial read capabilities.
sourcepub fn adjust_advance_frontier(&mut self, lower: &[T], upper: &[T])
pub fn adjust_advance_frontier(&mut self, lower: &[T], upper: &[T])
Replaces elements of lower with those of upper.
sourcepub fn adjust_through_frontier(&mut self, lower: &[T], upper: &[T])
pub fn adjust_through_frontier(&mut self, lower: &[T], upper: &[T])
Replaces elements of lower with those of upper.
Auto Trait Implementations
impl<K, V, T, R, Tr> RefUnwindSafe for TraceBox<K, V, T, R, Tr>where
K: RefUnwindSafe,
R: RefUnwindSafe,
T: RefUnwindSafe,
Tr: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V, T, R, Tr> Send for TraceBox<K, V, T, R, Tr>where
K: Send,
R: Send,
T: Send,
Tr: Send,
V: Send,
impl<K, V, T, R, Tr> Sync for TraceBox<K, V, T, R, Tr>where
K: Sync,
R: Sync,
T: Sync,
Tr: Sync,
V: Sync,
impl<K, V, T, R, Tr> Unpin for TraceBox<K, V, T, R, Tr>where
K: Unpin,
R: Unpin,
T: Unpin,
Tr: Unpin,
V: Unpin,
impl<K, V, T, R, Tr> UnwindSafe for TraceBox<K, V, T, R, Tr>where
K: UnwindSafe,
R: UnwindSafe,
T: UnwindSafe,
Tr: UnwindSafe,
V: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more