async_ringbuf::traits

Trait Split

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§

type Prod: Producer

Producer type.

type Cons: Consumer

Consumer type.

Required Methods§

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

Perform splitting.

Implementations on Foreign Types§

§

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

§

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

§

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

§

fn split( self, ) -> (<Box<LocalRb<S>> as Split>::Prod, <Box<LocalRb<S>> as Split>::Cons)

§

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

§

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

§

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

§

fn split( self, ) -> (<Box<SharedRb<S>> as Split>::Prod, <Box<SharedRb<S>> as Split>::Cons)

§

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

§

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

§

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

§

fn split( self, ) -> (<Rc<LocalRb<S>> as Split>::Prod, <Rc<LocalRb<S>> as Split>::Cons)

§

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

§

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

§

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

§

fn split( self, ) -> (<Arc<SharedRb<S>> as Split>::Prod, <Arc<SharedRb<S>> as Split>::Cons)

Implementors§

§

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

§

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

§

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

§

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

§

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

§

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

Source§

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

Source§

type Prod = AsyncWrap<Arc<AsyncRb<S>>, true, false>

Source§

type Cons = AsyncWrap<Arc<AsyncRb<S>>, false, true>