Struct differential_dataflow::trace::wrappers::rc::TraceRc[][src]

pub struct TraceRc<Tr> where
    Tr::Time: Lattice + Ord + Clone + 'static,
    Tr: TraceReader
{ pub wrapper: Rc<RefCell<TraceBox<Tr>>>, // some fields omitted }

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

impl<Tr> TraceRc<Tr> where
    Tr::Time: Lattice + Ord + Clone + 'static,
    Tr: TraceReader
[src]

pub fn make_from(trace: Tr) -> (Self, Rc<RefCell<TraceBox<Tr>>>)[src]

Allocates a new handle from an existing wrapped wrapper.

Trait Implementations

impl<Tr> Clone for TraceRc<Tr> where
    Tr::Time: Lattice + Ord + Clone,
    Tr: TraceReader
[src]

impl<Tr> Drop for TraceRc<Tr> where
    Tr::Time: Lattice + Ord + Clone + 'static,
    Tr: TraceReader
[src]

impl<Tr> TraceReader for TraceRc<Tr> where
    Tr::Time: Lattice + Ord + Clone + 'static,
    Tr: TraceReader
[src]

type Key = Tr::Key

Key by which updates are indexed.

type Val = Tr::Val

Values associated with keys.

type Time = Tr::Time

Timestamps associated with updates

type R = Tr::R

Associated update.

type Batch = Tr::Batch

The type of an immutable collection of updates.

type Cursor = Tr::Cursor

The type used to enumerate the collections contents.

fn set_logical_compaction(&mut self, frontier: AntichainRef<'_, Tr::Time>)[src]

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.

fn set_physical_compaction(&mut self, frontier: AntichainRef<'_, Tr::Time>)[src]

Allows the trace to compact batches of times before frontier.

fn cursor_through(
    &mut self,
    frontier: AntichainRef<'_, Tr::Time>
) -> Option<(Tr::Cursor, <Tr::Cursor as Cursor<Tr::Key, Tr::Val, Tr::Time, Tr::R>>::Storage)>
[src]

Creates a new cursor over the wrapped trace.

Auto Trait Implementations

impl<Tr> !RefUnwindSafe for TraceRc<Tr>

impl<Tr> !Send for TraceRc<Tr>

impl<Tr> !Sync for TraceRc<Tr>

impl<Tr> Unpin for TraceRc<Tr> where
    <Tr as TraceReader>::Time: Unpin

impl<Tr> !UnwindSafe for TraceRc<Tr>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Data for T where
    T: 'static + Clone
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.