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 consume(&mut self, n: usize)
pub fn consume(&mut self, n: usize)
Discards n elements from the front of the buffer without copying them.
If n exceeds the number of available elements, all elements are discarded.
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 try_peek_slice(&self, offset: usize, len: usize) -> Option<&[T]>
pub fn try_peek_slice(&self, offset: usize, len: usize) -> Option<&[T]>
Returns a contiguous slice of len elements starting at offset from the read cursor,
or None if the range wraps around the buffer boundary.
Does not consume any elements.
Sourcepub fn copy_out(&self, offset: usize, out: &mut [T]) -> usize
pub fn copy_out(&self, offset: usize, out: &mut [T]) -> usize
Copies readable elements into out starting at logical offset.
This method does not modify buffer state and can be used to inspect bytes before deciding whether to consume them.
Returns the number of copied elements (out.len()) on success, or 0
if the requested range is out of bounds or the buffer is empty.
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)