pub struct TraceEnter<Tr: TraceReader, TInner, F, G> { /* private fields */ }
Expand description
Wrapper to provide trace to nested scope.
Each wrapped update is presented with a timestamp determined by logic
.
At the same time, we require a method prior
that can “invert” timestamps,
and which will be applied to compaction frontiers as they are communicated
back to the wrapped traces. A better explanation is pending, and until that
happens use this construct at your own peril!
Implementations§
Source§impl<Tr, TInner, F, G> TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> TraceEnter<Tr, TInner, F, G>
Trait Implementations§
Source§impl<Tr, TInner, F, G> Clone for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> Clone for TraceEnter<Tr, TInner, F, G>
Source§impl<Tr, TInner, F, G> TraceReader for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> TraceReader for TraceEnter<Tr, TInner, F, G>
Source§type Batch = BatchEnter<<Tr as TraceReader>::Batch, TInner, F>
type Batch = BatchEnter<<Tr as TraceReader>::Batch, TInner, F>
The type of an immutable collection of updates.
Source§type Storage = <Tr as TraceReader>::Storage
type Storage = <Tr as TraceReader>::Storage
Storage type for
Self::Cursor
. Likely related to Self::Batch
.Source§type Cursor = CursorEnter<<Tr as TraceReader>::Cursor, TInner, F>
type Cursor = CursorEnter<<Tr as TraceReader>::Cursor, TInner, F>
The type used to enumerate the collections contents.
Source§fn map_batches<F2: FnMut(&Self::Batch)>(&self, f: F2)
fn map_batches<F2: FnMut(&Self::Batch)>(&self, f: F2)
Maps logic across the non-empty sequence of batches in the trace. Read more
Source§fn set_logical_compaction(&mut self, frontier: AntichainRef<'_, TInner>)
fn set_logical_compaction(&mut self, frontier: AntichainRef<'_, TInner>)
Advances the frontier that constrains logical compaction. Read more
Source§fn get_logical_compaction(&mut self) -> AntichainRef<'_, TInner>
fn get_logical_compaction(&mut self) -> AntichainRef<'_, TInner>
Reports the logical compaction frontier. Read more
Source§fn set_physical_compaction(&mut self, frontier: AntichainRef<'_, TInner>)
fn set_physical_compaction(&mut self, frontier: AntichainRef<'_, TInner>)
Advances the frontier that constrains physical compaction. Read more
Source§fn get_physical_compaction(&mut self) -> AntichainRef<'_, TInner>
fn get_physical_compaction(&mut self) -> AntichainRef<'_, TInner>
Reports the physical compaction frontier. Read more
Source§fn cursor_through(
&mut self,
upper: AntichainRef<'_, TInner>,
) -> Option<(Self::Cursor, Self::Storage)>
fn cursor_through( &mut self, upper: AntichainRef<'_, TInner>, ) -> Option<(Self::Cursor, Self::Storage)>
Acquires a cursor to the restriction of the collection’s contents to updates at times not greater or
equal to an element of
upper
. Read moreSource§fn cursor(&mut self) -> (Self::Cursor, Self::Storage)
fn cursor(&mut self) -> (Self::Cursor, Self::Storage)
Provides a cursor over updates contained in the trace.
Source§fn read_upper(&mut self, target: &mut Antichain<Self::Time>)
fn read_upper(&mut self, target: &mut Antichain<Self::Time>)
Reads the upper frontier of committed times.
Source§impl<Tr, TInner, F, G> WithLayout for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> WithLayout for TraceEnter<Tr, TInner, F, G>
Source§type Layout = (<<Tr as WithLayout>::Layout as Layout>::KeyContainer, <<Tr as WithLayout>::Layout as Layout>::ValContainer, Vec<TInner>, <<Tr as WithLayout>::Layout as Layout>::DiffContainer, <<Tr as WithLayout>::Layout as Layout>::OffsetContainer)
type Layout = (<<Tr as WithLayout>::Layout as Layout>::KeyContainer, <<Tr as WithLayout>::Layout as Layout>::ValContainer, Vec<TInner>, <<Tr as WithLayout>::Layout as Layout>::DiffContainer, <<Tr as WithLayout>::Layout as Layout>::OffsetContainer)
The layout.
Auto Trait Implementations§
impl<Tr, TInner, F, G> Freeze for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> RefUnwindSafe for TraceEnter<Tr, TInner, F, G>where
Tr: RefUnwindSafe,
F: RefUnwindSafe,
G: RefUnwindSafe,
<Tr as LayoutExt>::Time: RefUnwindSafe,
TInner: RefUnwindSafe,
impl<Tr, TInner, F, G> Send for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> Sync for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> Unpin for TraceEnter<Tr, TInner, F, G>
impl<Tr, TInner, F, G> UnwindSafe for TraceEnter<Tr, TInner, F, G>where
Tr: UnwindSafe,
F: UnwindSafe,
G: UnwindSafe,
<Tr as LayoutExt>::Time: RefUnwindSafe + UnwindSafe,
TInner: RefUnwindSafe + UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<L> LayoutExt for Lwhere
L: WithLayout,
impl<L> LayoutExt for Lwhere
L: WithLayout,
Source§type KeyOwn = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::Owned
type KeyOwn = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::Owned
Alias for an owned key of a layout.
Source§type Key<'a> = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::ReadItem<'a>
type Key<'a> = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed key of a layout.
Source§type ValOwn = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::Owned
type ValOwn = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::Owned
Alias for an owned val of a layout.
Source§type Val<'a> = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::ReadItem<'a>
type Val<'a> = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed val of a layout.
Source§type Time = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::Owned
type Time = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::Owned
Alias for an owned time of a layout.
Source§type TimeGat<'a> = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::ReadItem<'a>
type TimeGat<'a> = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed time of a layout.
Source§type Diff = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::Owned
type Diff = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::Owned
Alias for an owned diff of a layout.
Source§type DiffGat<'a> = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::ReadItem<'a>
type DiffGat<'a> = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed diff of a layout.
Source§type KeyContainer = <<L as WithLayout>::Layout as Layout>::KeyContainer
type KeyContainer = <<L as WithLayout>::Layout as Layout>::KeyContainer
Container for update keys.
Source§type ValContainer = <<L as WithLayout>::Layout as Layout>::ValContainer
type ValContainer = <<L as WithLayout>::Layout as Layout>::ValContainer
Container for update vals.
Source§type TimeContainer = <<L as WithLayout>::Layout as Layout>::TimeContainer
type TimeContainer = <<L as WithLayout>::Layout as Layout>::TimeContainer
Container for times.
Source§type DiffContainer = <<L as WithLayout>::Layout as Layout>::DiffContainer
type DiffContainer = <<L as WithLayout>::Layout as Layout>::DiffContainer
Container for diffs.
Source§fn owned_key(key: <L as LayoutExt>::Key<'_>) -> <L as LayoutExt>::KeyOwn
fn owned_key(key: <L as LayoutExt>::Key<'_>) -> <L as LayoutExt>::KeyOwn
Construct an owned key from a reference.
Source§fn owned_val(val: <L as LayoutExt>::Val<'_>) -> <L as LayoutExt>::ValOwn
fn owned_val(val: <L as LayoutExt>::Val<'_>) -> <L as LayoutExt>::ValOwn
Construct an owned val from a reference.
Source§fn owned_time(time: <L as LayoutExt>::TimeGat<'_>) -> <L as LayoutExt>::Time
fn owned_time(time: <L as LayoutExt>::TimeGat<'_>) -> <L as LayoutExt>::Time
Construct an owned time from a reference.
Source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
Source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.