Struct async_ringbuf::rb::AsyncRb
source · pub struct AsyncRb<S: Storage> { /* private fields */ }
Implementations§
Trait Implementations§
source§impl<S: Storage> Consumer for AsyncRb<S>
impl<S: Storage> Consumer for AsyncRb<S>
unsafe fn set_read_index(&self, value: usize)
source§unsafe fn advance_read_index(&self, count: usize)
unsafe fn advance_read_index(&self, count: usize)
source§fn occupied_slices(
&self
) -> (&[MaybeUninit<Self::Item>], &[MaybeUninit<Self::Item>])
fn occupied_slices( &self ) -> (&[MaybeUninit<Self::Item>], &[MaybeUninit<Self::Item>])
Provides a direct access to the ring buffer occupied memory.
The difference from
Self::as_slices
is that this method provides slices of MaybeUninit
, so items may be moved out of slices. Read moresource§unsafe fn occupied_slices_mut(
&mut self
) -> (&mut [MaybeUninit<Self::Item>], &mut [MaybeUninit<Self::Item>])
unsafe fn occupied_slices_mut( &mut self ) -> (&mut [MaybeUninit<Self::Item>], &mut [MaybeUninit<Self::Item>])
Provides a direct mutable access to the ring buffer occupied memory. Read more
source§fn as_slices(&self) -> (&[Self::Item], &[Self::Item])
fn as_slices(&self) -> (&[Self::Item], &[Self::Item])
Returns a pair of slices which contain, in order, the contents of the ring buffer.
source§fn as_mut_slices(&mut self) -> (&mut [Self::Item], &mut [Self::Item])
fn as_mut_slices(&mut self) -> (&mut [Self::Item], &mut [Self::Item])
Returns a pair of mutable slices which contain, in order, the contents of the ring buffer.
source§fn try_pop(&mut self) -> Option<Self::Item>
fn try_pop(&mut self) -> Option<Self::Item>
Removes latest item from the ring buffer and returns it. Read more
source§fn iter(&self) -> Chain<Iter<'_, Self::Item>, Iter<'_, Self::Item>>
fn iter(&self) -> Chain<Iter<'_, Self::Item>, Iter<'_, Self::Item>>
Returns a front-to-back iterator containing references to items in the ring buffer. Read more
source§fn iter_mut(
&mut self
) -> Chain<IterMut<'_, Self::Item>, IterMut<'_, Self::Item>>
fn iter_mut( &mut self ) -> Chain<IterMut<'_, Self::Item>, IterMut<'_, Self::Item>>
Returns a front-to-back iterator that returns mutable references to items in the ring buffer. Read more
source§impl<S: Storage> Observer for AsyncRb<S>
impl<S: Storage> Observer for AsyncRb<S>
type Item = <S as Storage>::Item
source§fn capacity(&self) -> NonZeroUsize
fn capacity(&self) -> NonZeroUsize
Capacity of the ring buffer. Read more
fn read_index(&self) -> usize
fn write_index(&self) -> usize
unsafe fn unsafe_slices( &self, start: usize, end: usize ) -> (&mut [MaybeUninit<S::Item>], &mut [MaybeUninit<S::Item>])
source§fn read_is_held(&self) -> bool
fn read_is_held(&self) -> bool
Whether read end is held by consumer.
source§fn write_is_held(&self) -> bool
fn write_is_held(&self) -> bool
Whether write end is held by producer.
source§fn occupied_len(&self) -> usize
fn occupied_len(&self) -> usize
The number of items stored in the buffer. Read more
source§fn vacant_len(&self) -> usize
fn vacant_len(&self) -> usize
The number of remaining free places in the buffer. Read more
source§impl<S: Storage> Producer for AsyncRb<S>
impl<S: Storage> Producer for AsyncRb<S>
unsafe fn set_write_index(&self, value: usize)
source§unsafe fn advance_write_index(&self, count: usize)
unsafe fn advance_write_index(&self, count: usize)
source§fn vacant_slices(
&self
) -> (&[MaybeUninit<Self::Item>], &[MaybeUninit<Self::Item>])
fn vacant_slices( &self ) -> (&[MaybeUninit<Self::Item>], &[MaybeUninit<Self::Item>])
Provides a direct access to the ring buffer vacant memory. Read more
source§fn vacant_slices_mut(
&mut self
) -> (&mut [MaybeUninit<Self::Item>], &mut [MaybeUninit<Self::Item>])
fn vacant_slices_mut( &mut self ) -> (&mut [MaybeUninit<Self::Item>], &mut [MaybeUninit<Self::Item>])
Mutable version of
Self::vacant_slices
. Read moresource§impl<S: Storage> RingBuffer for AsyncRb<S>
impl<S: Storage> RingBuffer for AsyncRb<S>
impl<S: Storage> Unpin for AsyncRb<S>
Auto Trait Implementations§
impl<S> !RefUnwindSafe for AsyncRb<S>
impl<S> Send for AsyncRb<S>where <S as Storage>::Internal: Send,
impl<S> Sync for AsyncRb<S>where <S as Storage>::Item: Send,
impl<S> UnwindSafe for AsyncRb<S>where <S as Storage>::Internal: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more