Struct async_ringbuf::rb::AsyncRb

source ·
pub struct AsyncRb<S: Storage> { /* private fields */ }

Implementations§

source§

impl<T> AsyncRb<Heap<T>>

source

pub fn new(cap: usize) -> Self

source§

impl<S: Storage> AsyncRb<S>

source

pub fn from(base: SharedRb<S>) -> Self

Trait Implementations§

source§

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

source§

fn as_mut(&mut self) -> &mut Self

Converts this type into a mutable reference of the (usually inferred) input type.
source§

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

source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
source§

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

source§

unsafe fn set_read_index(&self, value: usize)

Set read index. Read more
source§

unsafe fn advance_read_index(&self, count: usize)

Moves read pointer by count places forward. Read more
source§

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 more
source§

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])

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])

Returns a pair of mutable slices which contain, in order, the contents of the ring buffer.
source§

fn first(&self) -> Option<&Self::Item>

Returns a reference to the eldest item in the ring buffer, if exists.
source§

fn first_mut(&mut self) -> Option<&mut Self::Item>

Returns a mutable reference to the eldest item in the ring buffer, if exists.
source§

fn last(&self) -> Option<&Self::Item>

Returns a reference to the most recent item in the ring buffer, if exists. Read more
source§

fn last_mut(&mut self) -> Option<&mut Self::Item>

Returns a mutable reference to the most recent item in the ring buffer, if exists. Read more
source§

fn try_pop(&mut self) -> Option<Self::Item>

Removes the eldest item from the ring buffer and returns it. Read more
source§

fn pop_slice_uninit(&mut self, elems: &mut [MaybeUninit<Self::Item>]) -> usize

Removes items from the ring buffer and writes them into an uninit slice. Read more
source§

fn pop_iter(&mut self) -> PopIter<'_, Self>

Returns an iterator that removes items one by one from the ring buffer.
source§

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>>

Returns a front-to-back iterator that returns mutable references to items in the ring buffer. Read more
source§

fn skip(&mut self, count: usize) -> usize

Removes at most count and at least min(count, Self::len()) items from the buffer and safely drops them. Read more
source§

fn clear(&mut self) -> usize

Removes all items from the buffer and safely drops them. Read more
source§

impl<T, const N: usize> Default for AsyncRb<Array<T, N>>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

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

§

type Item = <S as Storage>::Item

source§

fn capacity(&self) -> NonZeroUsize

Capacity of the ring buffer. Read more
source§

fn read_index(&self) -> usize

Index of the last item in the ring buffer. Read more
source§

fn write_index(&self) -> usize

Index of the next empty slot in the ring buffer. Read more
source§

unsafe fn unsafe_slices( &self, start: usize, end: usize ) -> (&[MaybeUninit<S::Item>], &[MaybeUninit<S::Item>])

Get slice between start and end indices. Read more
source§

unsafe fn unsafe_slices_mut( &self, start: usize, end: usize ) -> (&mut [MaybeUninit<S::Item>], &mut [MaybeUninit<S::Item>])

Get mutable slice between start and end indices. Read more
source§

fn read_is_held(&self) -> bool

Whether read end is held by consumer.
source§

fn write_is_held(&self) -> bool

Whether write end is held by producer.
source§

fn occupied_len(&self) -> usize

The number of items stored in the buffer. Read more
source§

fn vacant_len(&self) -> usize

The number of remaining free places in the buffer. Read more
source§

fn is_empty(&self) -> bool

Checks if the ring buffer is empty. Read more
source§

fn is_full(&self) -> bool

Checks if the ring buffer is full. Read more
source§

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

source§

unsafe fn set_write_index(&self, value: usize)

Set read index. Read more
source§

unsafe fn advance_write_index(&self, count: usize)

Moves write pointer by count places forward. Read more
source§

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>])

Mutable version of Self::vacant_slices. Read more
source§

fn try_push(&mut self, elem: Self::Item) -> Result<(), Self::Item>

Appends an item to the ring buffer. Read more
source§

fn push_iter<I>(&mut self, iter: I) -> usize
where I: Iterator<Item = Self::Item>,

Appends items from an iterator to the ring buffer. Elements that haven’t been added to the ring buffer remain in the iterator. Read more
source§

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

source§

unsafe fn hold_read(&self, flag: bool) -> bool

Tell whether read end of the ring buffer is held by consumer or not. Read more
source§

unsafe fn hold_write(&self, flag: bool) -> bool

Tell whether write end of the ring buffer is held by producer or not. Read more
source§

fn push_overwrite(&mut self, elem: Self::Item) -> Option<Self::Item>

Pushes an item to the ring buffer overwriting the latest item if the buffer is full. Read more
source§

fn push_iter_overwrite<I>(&mut self, iter: I)
where I: Iterator<Item = Self::Item>,

Appends items from an iterator to the ring buffer. Read more
source§

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

§

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

Producer type.
§

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

Consumer type.
source§

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

Perform splitting.
source§

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

§

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

Ref producer type.
§

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

Ref consumer type.
source§

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

Perform splitting by reference.
source§

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

Auto Trait Implementations§

§

impl<S> !Freeze for AsyncRb<S>

§

impl<S> !RefUnwindSafe for AsyncRb<S>

§

impl<S> Send for AsyncRb<S>
where S: Send,

§

impl<S> Sync for AsyncRb<S>
where S: Sync,

§

impl<S> UnwindSafe for AsyncRb<S>
where S: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.