pub trait SplitRef: RingBuffer {
    type RefProd<'a>: Producer + 'a
       where Self: 'a;
    type RefCons<'a>: Consumer + 'a
       where Self: 'a;

    // Required method
    fn split_ref(&mut self) -> (Self::RefProd<'_>, Self::RefCons<'_>);
}

Required Associated Types§

source

type RefProd<'a>: Producer + 'a where Self: 'a

source

type RefCons<'a>: Consumer + 'a where Self: 'a

Required Methods§

source

fn split_ref(&mut self) -> (Self::RefProd<'_>, Self::RefCons<'_>)

Implementors§

source§

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

§

type RefProd<'a> = Direct<&'a LocalRb<S>, true, false> where LocalRb<S>: 'a

§

type RefCons<'a> = Direct<&'a LocalRb<S>, false, true> where LocalRb<S>: 'a

source§

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

§

type RefProd<'a> = Caching<&'a SharedRb<S>, true, false> where SharedRb<S>: 'a

§

type RefCons<'a> = Caching<&'a SharedRb<S>, false, true> where SharedRb<S>: 'a

source§

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

§

type RefProd<'a> = AsyncWrap<&'a AsyncRb<S>, true, false> where Self: 'a

§

type RefCons<'a> = AsyncWrap<&'a AsyncRb<S>, false, true> where Self: 'a