Skip to main content

Slicable

Trait Slicable 

Source
pub trait Slicable<'a, L: Location<'a>> {
    type Slice;
    type Backtrace;

    // Required methods
    fn get_location(&self) -> L;
    fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice;

    // Provided method
    fn create_tick(&self) -> Tick<L> { ... }
}
Expand description

A trait for live collections which can be sliced into bounded versions at a tick.

Required Associated Types§

Source

type Slice

The sliced version of this live collection.

Source

type Backtrace

The type of backtrace associated with this slice.

Required Methods§

Source

fn get_location(&self) -> L

Gets the location associated with this live collection.

Source

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Slices this live collection at the given tick.

§Non-Determinism

Slicing a live collection may involve non-determinism, such as choosing which messages to include in a batch.

Provided Methods§

Source

fn create_tick(&self) -> Tick<L>

Creates a tick that is appropriate for the collection’s location.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, L: Location<'a>> Slicable<'a, L> for ()

Source§

type Slice = ()

Source§

type Backtrace = ()

Source§

fn get_location(&self) -> L

Source§

fn slice(self, _tick: &Tick<L>, _backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>> Slicable<'a, L> for (S1,)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice,)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace,)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>> Slicable<'a, L> for (S1, S2)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>, S7: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6, S7)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice, <S7 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace, <S7 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>, S7: Slicable<'a, L>, S8: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6, S7, S8)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice, <S7 as Slicable<'a, L>>::Slice, <S8 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace, <S7 as Slicable<'a, L>>::Backtrace, <S8 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>, S7: Slicable<'a, L>, S8: Slicable<'a, L>, S9: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6, S7, S8, S9)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice, <S7 as Slicable<'a, L>>::Slice, <S8 as Slicable<'a, L>>::Slice, <S9 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace, <S7 as Slicable<'a, L>>::Backtrace, <S8 as Slicable<'a, L>>::Backtrace, <S9 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>, S7: Slicable<'a, L>, S8: Slicable<'a, L>, S9: Slicable<'a, L>, S10: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice, <S7 as Slicable<'a, L>>::Slice, <S8 as Slicable<'a, L>>::Slice, <S9 as Slicable<'a, L>>::Slice, <S10 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace, <S7 as Slicable<'a, L>>::Backtrace, <S8 as Slicable<'a, L>>::Backtrace, <S9 as Slicable<'a, L>>::Backtrace, <S10 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>, S7: Slicable<'a, L>, S8: Slicable<'a, L>, S9: Slicable<'a, L>, S10: Slicable<'a, L>, S11: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice, <S7 as Slicable<'a, L>>::Slice, <S8 as Slicable<'a, L>>::Slice, <S9 as Slicable<'a, L>>::Slice, <S10 as Slicable<'a, L>>::Slice, <S11 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace, <S7 as Slicable<'a, L>>::Backtrace, <S8 as Slicable<'a, L>>::Backtrace, <S9 as Slicable<'a, L>>::Backtrace, <S10 as Slicable<'a, L>>::Backtrace, <S11 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Source§

impl<'a, L: Location<'a>, S1: Slicable<'a, L>, S2: Slicable<'a, L>, S3: Slicable<'a, L>, S4: Slicable<'a, L>, S5: Slicable<'a, L>, S6: Slicable<'a, L>, S7: Slicable<'a, L>, S8: Slicable<'a, L>, S9: Slicable<'a, L>, S10: Slicable<'a, L>, S11: Slicable<'a, L>, S12: Slicable<'a, L>> Slicable<'a, L> for (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12)

Source§

type Slice = (<S1 as Slicable<'a, L>>::Slice, <S2 as Slicable<'a, L>>::Slice, <S3 as Slicable<'a, L>>::Slice, <S4 as Slicable<'a, L>>::Slice, <S5 as Slicable<'a, L>>::Slice, <S6 as Slicable<'a, L>>::Slice, <S7 as Slicable<'a, L>>::Slice, <S8 as Slicable<'a, L>>::Slice, <S9 as Slicable<'a, L>>::Slice, <S10 as Slicable<'a, L>>::Slice, <S11 as Slicable<'a, L>>::Slice, <S12 as Slicable<'a, L>>::Slice)

Source§

type Backtrace = (<S1 as Slicable<'a, L>>::Backtrace, <S2 as Slicable<'a, L>>::Backtrace, <S3 as Slicable<'a, L>>::Backtrace, <S4 as Slicable<'a, L>>::Backtrace, <S5 as Slicable<'a, L>>::Backtrace, <S6 as Slicable<'a, L>>::Backtrace, <S7 as Slicable<'a, L>>::Backtrace, <S8 as Slicable<'a, L>>::Backtrace, <S9 as Slicable<'a, L>>::Backtrace, <S10 as Slicable<'a, L>>::Backtrace, <S11 as Slicable<'a, L>>::Backtrace, <S12 as Slicable<'a, L>>::Backtrace)

Source§

fn get_location(&self) -> L

Source§

fn slice(self, tick: &Tick<L>, backtrace: Self::Backtrace) -> Self::Slice

Implementors§

Source§

impl<'a, K, V, L: Location<'a>> Slicable<'a, <L as Location<'a>>::DropConsistency> for Atomic<KeyedSingleton<K, V, Atomic<L>, BoundedValue>>

Source§

impl<'a, K, V, L: Location<'a>> Slicable<'a, <L as Location<'a>>::DropConsistency> for Default<KeyedSingleton<K, V, L, BoundedValue>>

Source§

impl<'a, K, V, L: Location<'a>, B: Boundedness, O: Ordering, R: Retries> Slicable<'a, <L as Location<'a>>::DropConsistency> for Atomic<KeyedStream<K, V, Atomic<L>, B, O, R>>

Source§

impl<'a, K, V, L: Location<'a>, B: Boundedness, O: Ordering, R: Retries> Slicable<'a, <L as Location<'a>>::DropConsistency> for Default<KeyedStream<K, V, L, B, O, R>>

Source§

impl<'a, K, V, L: Location<'a>, B: KeyedSingletonBound<ValueBound = Unbounded>> Slicable<'a, <L as Location<'a>>::DropConsistency> for Atomic<KeyedSingleton<K, V, Atomic<L>, B>>

Source§

impl<'a, K, V, L: Location<'a>, B: KeyedSingletonBound<ValueBound = Unbounded>> Slicable<'a, <L as Location<'a>>::DropConsistency> for Default<KeyedSingleton<K, V, L, B>>

Source§

impl<'a, T, L: Location<'a>, B: Boundedness> Slicable<'a, <L as Location<'a>>::DropConsistency> for Atomic<Optional<T, Atomic<L>, B>>

Source§

impl<'a, T, L: Location<'a>, B: Boundedness> Slicable<'a, <L as Location<'a>>::DropConsistency> for Default<Optional<T, L, B>>

Source§

impl<'a, T, L: Location<'a>, B: Boundedness, O: Ordering, R: Retries> Slicable<'a, <L as Location<'a>>::DropConsistency> for Atomic<Stream<T, Atomic<L>, B, O, R>>

Source§

impl<'a, T, L: Location<'a>, B: Boundedness, O: Ordering, R: Retries> Slicable<'a, <L as Location<'a>>::DropConsistency> for Default<Stream<T, L, B, O, R>>

Source§

impl<'a, T, L: Location<'a>, B: SingletonBound> Slicable<'a, <L as Location<'a>>::DropConsistency> for Atomic<Singleton<T, Atomic<L>, B>>

Source§

impl<'a, T, L: Location<'a>, B: SingletonBound> Slicable<'a, <L as Location<'a>>::DropConsistency> for Default<Singleton<T, L, B>>