Struct differential_dataflow::trace::wrappers::rc::TraceBox

source ·
pub struct TraceBox<Tr: TraceReader> {
    pub logical_compaction: MutableAntichain<Tr::Time>,
    pub physical_compaction: MutableAntichain<Tr::Time>,
    pub trace: Tr,
}
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§

§logical_compaction: MutableAntichain<Tr::Time>

accumulated holds on times for advancement.

§physical_compaction: MutableAntichain<Tr::Time>

accumulated holds on times for distinction.

§trace: Tr

The wrapped trace.

Implementations§

source§

impl<Tr: TraceReader> TraceBox<Tr>

source

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.

source

pub fn adjust_logical_compaction( &mut self, lower: AntichainRef<'_, Tr::Time>, upper: AntichainRef<'_, Tr::Time>, )

Replaces elements of lower with those of upper.

source

pub fn adjust_physical_compaction( &mut self, lower: AntichainRef<'_, Tr::Time>, upper: AntichainRef<'_, Tr::Time>, )

Replaces elements of lower with those of upper.

Auto Trait Implementations§

§

impl<Tr> Freeze for TraceBox<Tr>
where Tr: Freeze, <Tr as TraceReader>::Time: Freeze,

§

impl<Tr> RefUnwindSafe for TraceBox<Tr>

§

impl<Tr> Send for TraceBox<Tr>
where Tr: Send,

§

impl<Tr> Sync for TraceBox<Tr>
where Tr: Sync,

§

impl<Tr> Unpin for TraceBox<Tr>
where Tr: Unpin, <Tr as TraceReader>::Time: Unpin,

§

impl<Tr> UnwindSafe for TraceBox<Tr>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<'a, S, T> Semigroup<&'a S> for T
where T: Semigroup<S>,

source§

fn plus_equals(&mut self, rhs: &&'a S)

The method of std::ops::AddAssign, for types that do not implement AddAssign.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.