pub struct BoundedRingBuffer<T> { /* private fields */ }Implementations§
Source§impl<T> BoundedRingBuffer<T>
impl<T> BoundedRingBuffer<T>
Sourcepub fn with_capacity(cap: usize) -> Self
pub fn with_capacity(cap: usize) -> Self
Sourcepub fn iter(&self) -> Iter<'_, T> ⓘ
pub fn iter(&self) -> Iter<'_, T> ⓘ
Returns an iterator over readable elements in logical queue order.
Sourcepub fn iter_mut(&mut self) -> IterMut<'_, T> ⓘ
pub fn iter_mut(&mut self) -> IterMut<'_, T> ⓘ
Returns a mutable iterator over readable elements in logical queue order.
Sourcepub fn back(&self) -> Option<&T>
pub fn back(&self) -> Option<&T>
Returns a shared reference to the element at the current write index.
This does not modify buffer state.
Sourcepub fn back_mut(&mut self) -> Option<&mut T>
pub fn back_mut(&mut self) -> Option<&mut T>
Returns a mutable reference to the element at the current write index - 1.
This does not modify indices or length.
Sourcepub fn front_mut(&mut self) -> Option<&mut T>
pub fn front_mut(&mut self) -> Option<&mut T>
Returns a mutable reference to the front readable element.
Sourcepub fn enqueue(&mut self, data: T)
pub fn enqueue(&mut self, data: T)
Enqueues a single element.
When the buffer is full, the oldest element is overwritten.
Sourcepub fn dequeue(&mut self) -> Option<T>
pub fn dequeue(&mut self) -> Option<T>
Dequeues and returns the front element, or None if empty.
Sourcepub fn advance(&mut self, size: usize)
pub fn advance(&mut self, size: usize)
Advances the write cursor by size slots as if size items were written.
If this exceeds available space, the oldest elements are dropped.
Sourcepub fn enqueue_slice(&mut self, data: &[T])
pub fn enqueue_slice(&mut self, data: &[T])
Enqueues a slice of elements preserving order.
This is the recommended high-throughput API for streaming workloads.
If data is larger than capacity, only the last capacity elements are kept.
Sourcepub fn dequeue_slice(
&mut self,
out_buffer: &mut [T],
dequeue_size: usize,
) -> usize
pub fn dequeue_slice( &mut self, out_buffer: &mut [T], dequeue_size: usize, ) -> usize
Dequeues up to dequeue_size elements into out_buffer.
This is the recommended high-throughput API for draining buffered data.
Returns the number of elements actually written to out_buffer.
§Panics
Panics if out_buffer.len() < dequeue_size.
Sourcepub fn as_slice(&self) -> (&[T], Option<&[T]>)
pub fn as_slice(&self) -> (&[T], Option<&[T]>)
Returns readable data as one contiguous slice plus an optional wrapped slice.
Sourcepub fn as_mut_slice(&mut self) -> (&mut [T], Option<&mut [T]>)
pub fn as_mut_slice(&mut self) -> (&mut [T], Option<&mut [T]>)
Returns mutable readable data as one contiguous slice plus an optional wrapped slice.
Source§impl BoundedRingBuffer<u8>
impl BoundedRingBuffer<u8>
pub fn enqueue_u8(&mut self, value: u8)
pub fn enqueue_u16(&mut self, value: u16)
pub fn enqueue_u32(&mut self, value: u32)
pub fn enqueue_u64(&mut self, value: u64)
pub fn enqueue_u128(&mut self, value: u128)
pub fn enqueue_i8(&mut self, value: i8)
pub fn enqueue_i16(&mut self, value: i16)
pub fn enqueue_i32(&mut self, value: i32)
pub fn enqueue_i64(&mut self, value: i64)
pub fn enqueue_i128(&mut self, value: i128)
pub fn enqueue_isize(&mut self, value: isize)
pub fn enqueue_usize(&mut self, value: usize)
pub fn enqueue_f32(&mut self, value: f32)
pub fn enqueue_f64(&mut self, value: f64)
Source§impl BoundedRingBuffer<u8>
impl BoundedRingBuffer<u8>
pub fn dequeue_u8(&mut self) -> Option<u8>
pub fn dequeue_u16(&mut self) -> Option<u16>
pub fn dequeue_u32(&mut self) -> Option<u32>
pub fn dequeue_u64(&mut self) -> Option<u64>
pub fn dequeue_u128(&mut self) -> Option<u128>
pub fn dequeue_i8(&mut self) -> Option<i8>
pub fn dequeue_i16(&mut self) -> Option<i16>
pub fn dequeue_i32(&mut self) -> Option<i32>
pub fn dequeue_i64(&mut self) -> Option<i64>
pub fn dequeue_i128(&mut self) -> Option<i128>
pub fn dequeue_isize(&mut self) -> Option<isize>
pub fn dequeue_usize(&mut self) -> Option<usize>
pub fn dequeue_f32(&mut self) -> Option<f32>
pub fn dequeue_f64(&mut self) -> Option<f64>
Source§impl BoundedRingBuffer<u8>
impl BoundedRingBuffer<u8>
pub fn peek_u8(&self) -> Option<u8>
pub fn peek_u16(&self) -> Option<u16>
pub fn peek_u32(&self) -> Option<u32>
pub fn peek_u64(&self) -> Option<u64>
pub fn peek_u128(&self) -> Option<u128>
pub fn peek_i8(&self) -> Option<i8>
pub fn peek_i16(&self) -> Option<i16>
pub fn peek_i32(&self) -> Option<i32>
pub fn peek_i64(&self) -> Option<i64>
pub fn peek_i128(&self) -> Option<i128>
pub fn peek_usize(&self) -> Option<usize>
pub fn peek_isize(&self) -> Option<isize>
pub fn peek_f32(&self) -> Option<f32>
pub fn peek_f64(&self) -> Option<f64>
Trait Implementations§
Source§impl<T: Clone> Clone for BoundedRingBuffer<T>
impl<T: Clone> Clone for BoundedRingBuffer<T>
Source§fn clone(&self) -> BoundedRingBuffer<T>
fn clone(&self) -> BoundedRingBuffer<T>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Debug> Debug for BoundedRingBuffer<T>
impl<T: Debug> Debug for BoundedRingBuffer<T>
Source§impl<T> Default for BoundedRingBuffer<T>
impl<T> Default for BoundedRingBuffer<T>
Source§impl<T> Display for BoundedRingBuffer<T>where
T: Display,
impl<T> Display for BoundedRingBuffer<T>where
T: Display,
Source§impl<T> Extend<T> for BoundedRingBuffer<T>
impl<T> Extend<T> for BoundedRingBuffer<T>
Source§fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)