pub struct TraceRc<Tr: TraceReader> {
pub wrapper: Rc<RefCell<TraceBox<Tr>>>,
/* private fields */
}
Expand description
A handle to a shared trace.
As long as the handle exists, the wrapped trace should continue to exist and will not advance its timestamps past the frontier maintained by the handle. The intent is that such a handle appears as if it is a privately maintained trace, despite being backed by shared resources.
Fields§
§wrapper: Rc<RefCell<TraceBox<Tr>>>
Wrapped trace. Please be gentle when using.
Implementations§
Trait Implementations§
source§impl<Tr: TraceReader> Clone for TraceRc<Tr>
impl<Tr: TraceReader> Clone for TraceRc<Tr>
source§impl<Tr: TraceReader> Drop for TraceRc<Tr>
impl<Tr: TraceReader> Drop for TraceRc<Tr>
source§impl<Tr: TraceReader> TraceReader for TraceRc<Tr>
impl<Tr: TraceReader> TraceReader for TraceRc<Tr>
source§fn set_logical_compaction(&mut self, frontier: AntichainRef<'_, Tr::Time>)
fn set_logical_compaction(&mut self, frontier: AntichainRef<'_, Tr::Time>)
Sets frontier to now be elements in frontier
.
This change may not have immediately observable effects. It informs the shared trace that this
handle no longer requires access to times other than those in the future of frontier
, but if
there are other handles to the same trace, it may not yet be able to compact.
source§fn set_physical_compaction(&mut self, frontier: AntichainRef<'_, Tr::Time>)
fn set_physical_compaction(&mut self, frontier: AntichainRef<'_, Tr::Time>)
Allows the trace to compact batches of times before frontier
.
source§fn cursor_through(
&mut self,
frontier: AntichainRef<'_, Tr::Time>,
) -> Option<(Tr::Cursor, Tr::Storage)>
fn cursor_through( &mut self, frontier: AntichainRef<'_, Tr::Time>, ) -> Option<(Tr::Cursor, Tr::Storage)>
Creates a new cursor over the wrapped trace.
§type Key<'a> = <Tr as TraceReader>::Key<'a>
type Key<'a> = <Tr as TraceReader>::Key<'a>
§type Val<'a> = <Tr as TraceReader>::Val<'a>
type Val<'a> = <Tr as TraceReader>::Val<'a>
§type Time = <Tr as TraceReader>::Time
type Time = <Tr as TraceReader>::Time
§type TimeGat<'a> = <Tr as TraceReader>::TimeGat<'a>
type TimeGat<'a> = <Tr as TraceReader>::TimeGat<'a>
§type Diff = <Tr as TraceReader>::Diff
type Diff = <Tr as TraceReader>::Diff
§type DiffGat<'a> = <Tr as TraceReader>::DiffGat<'a>
type DiffGat<'a> = <Tr as TraceReader>::DiffGat<'a>
§type Batch = <Tr as TraceReader>::Batch
type Batch = <Tr as TraceReader>::Batch
§type Storage = <Tr as TraceReader>::Storage
type Storage = <Tr as TraceReader>::Storage
Self::Cursor
. Likely related to Self::Batch
.§type Cursor = <Tr as TraceReader>::Cursor
type Cursor = <Tr as TraceReader>::Cursor
source§fn get_logical_compaction(&mut self) -> AntichainRef<'_, Tr::Time>
fn get_logical_compaction(&mut self) -> AntichainRef<'_, Tr::Time>
source§fn get_physical_compaction(&mut self) -> AntichainRef<'_, Tr::Time>
fn get_physical_compaction(&mut self) -> AntichainRef<'_, Tr::Time>
source§fn map_batches<F: FnMut(&Self::Batch)>(&self, f: F)
fn map_batches<F: FnMut(&Self::Batch)>(&self, f: F)
source§fn cursor(&mut self) -> (Self::Cursor, Self::Storage)
fn cursor(&mut self) -> (Self::Cursor, Self::Storage)
source§fn advance_by(&mut self, frontier: AntichainRef<'_, Self::Time>)
fn advance_by(&mut self, frontier: AntichainRef<'_, Self::Time>)
set_logical_compaction
set_logical_compaction
.source§fn advance_frontier(&mut self) -> AntichainRef<'_, Self::Time>
fn advance_frontier(&mut self) -> AntichainRef<'_, Self::Time>
get_logical_compaction
get_logical_compaction
.source§fn distinguish_since(&mut self, frontier: AntichainRef<'_, Self::Time>)
fn distinguish_since(&mut self, frontier: AntichainRef<'_, Self::Time>)
set_physical_compaction
set_physical_compaction
.source§fn distinguish_frontier(&mut self) -> AntichainRef<'_, Self::Time>
fn distinguish_frontier(&mut self) -> AntichainRef<'_, Self::Time>
get_physical_compaction
get_physical_compaction
.source§fn read_upper(&mut self, target: &mut Antichain<Self::Time>)
fn read_upper(&mut self, target: &mut Antichain<Self::Time>)
Auto Trait Implementations§
impl<Tr> Freeze for TraceRc<Tr>
impl<Tr> !RefUnwindSafe for TraceRc<Tr>
impl<Tr> !Send for TraceRc<Tr>
impl<Tr> !Sync for TraceRc<Tr>
impl<Tr> Unpin for TraceRc<Tr>
impl<Tr> !UnwindSafe for TraceRc<Tr>
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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)
std::ops::AddAssign
, for types that do not implement AddAssign
.