Trait ringbuf::traits::Split

source ·
pub trait Split {
    type Prod: Producer;
    type Cons: Consumer;

    // Required method
    fn split(self) -> (Self::Prod, Self::Cons);
}
Expand description

Split the ring buffer onto producer and consumer.

Required Associated Types§

source

type Prod: Producer

Producer type.

source

type Cons: Consumer

Consumer type.

Required Methods§

source

fn split(self) -> (Self::Prod, Self::Cons)

Perform splitting.

Implementations on Foreign Types§

source§

impl<S: Storage + ?Sized> Split for Box<LocalRb<S>>

§

type Prod = Direct<Rc<LocalRb<S>>, true, false>

§

type Cons = Direct<Rc<LocalRb<S>>, false, true>

source§

fn split(self) -> (Self::Prod, Self::Cons)

source§

impl<S: Storage + ?Sized> Split for Box<SharedRb<S>>

§

type Prod = Caching<Arc<SharedRb<S>>, true, false>

§

type Cons = Caching<Arc<SharedRb<S>>, false, true>

source§

fn split(self) -> (Self::Prod, Self::Cons)

source§

impl<S: Storage + ?Sized> Split for Rc<LocalRb<S>>

§

type Prod = Direct<Rc<LocalRb<S>>, true, false>

§

type Cons = Direct<Rc<LocalRb<S>>, false, true>

source§

fn split(self) -> (Self::Prod, Self::Cons)

source§

impl<S: Storage + ?Sized> Split for Arc<SharedRb<S>>

§

type Prod = Caching<Arc<SharedRb<S>>, true, false>

§

type Cons = Caching<Arc<SharedRb<S>>, false, true>

source§

fn split(self) -> (Self::Prod, Self::Cons)

Implementors§

source§

impl<S: Storage> Split for LocalRb<S>

§

type Prod = Direct<Rc<LocalRb<S>>, true, false>

§

type Cons = Direct<Rc<LocalRb<S>>, false, true>

source§

impl<S: Storage> Split for SharedRb<S>

§

type Prod = Caching<Arc<SharedRb<S>>, true, false>

§

type Cons = Caching<Arc<SharedRb<S>>, false, true>