[−][src]Struct ringbuffer::AllocRingBuffer
The AllocRingBuffer is a RingBuffer which is based on a Vec. This means it allocates at runtime
on the heap, and therefore needs the alloc
crate. This struct and therefore the dependency on
alloc can be disabled by disabling the alloc
(default) feature.
Example
use ringbuffer::{AllocRingBuffer, RingBuffer}; let mut buffer = AllocRingBuffer::with_capacity(2); // First entry of the buffer is now 5. buffer.push(5); // The last item we pushed is 5 assert_eq!(buffer.get(-1), Some(&5)); // Second entry is now 42. buffer.push(42); assert_eq!(buffer.peek(), Some(&5)); assert!(buffer.is_full()); // Because capacity is reached the next push will be the first item of the buffer. buffer.push(1); assert_eq!(buffer.to_vec(), vec![42, 1]);
Implementations
impl<T> AllocRingBuffer<T>
[src]
pub fn with_capacity(cap: usize) -> Self
[src]
Creates a RingBuffer with a certain capacity. This capacity is fixed.
pub fn new() -> Self
[src]
Creates a RingBuffer with a capacity of RINGBUFFER_DEFAULT_CAPACITY.
Trait Implementations
impl<T: Debug> Debug for AllocRingBuffer<T>
[src]
impl<T> Default for AllocRingBuffer<T>
[src]
fn default() -> Self
[src]
Creates a buffer with a capacity of crate::RINGBUFFER_DEFAULT_CAPACITY.
impl<T: Eq> Eq for AllocRingBuffer<T>
[src]
impl<RB: 'static + Default> FromIterator<RB> for AllocRingBuffer<RB>
[src]
fn from_iter<T: IntoIterator<Item = RB>>(iter: T) -> Self
[src]
impl<T: 'static + Default> Index<isize> for AllocRingBuffer<T>
[src]
type Output = T
The returned type after indexing.
fn index(&self, index: isize) -> &Self::Output
[src]
impl<T: 'static + Default> IndexMut<isize> for AllocRingBuffer<T>
[src]
impl<T: PartialEq> PartialEq<AllocRingBuffer<T>> for AllocRingBuffer<T>
[src]
fn eq(&self, other: &AllocRingBuffer<T>) -> bool
[src]
fn ne(&self, other: &AllocRingBuffer<T>) -> bool
[src]
impl<T: 'static + Default> RingBuffer<T> for AllocRingBuffer<T>
[src]
fn len(&self) -> usize
[src]
fn clear(&mut self)
[src]
fn capacity(&self) -> usize
[src]
fn push(&mut self, e: T)
[src]
fn get(&self, index: isize) -> Option<&T>
[src]
fn get_mut(&mut self, index: isize) -> Option<&mut T>
[src]
fn get_absolute(&self, index: usize) -> Option<&T>
[src]
fn get_absolute_mut(&mut self, index: usize) -> Option<&mut T>
[src]
fn is_empty(&self) -> bool
[src]
fn is_full(&self) -> bool
[src]
fn peek(&self) -> Option<&T>
[src]
fn back(&self) -> Option<&T>
[src]
fn front(&self) -> Option<&T>
[src]
fn back_mut(&mut self) -> Option<&mut T>
[src]
fn front_mut(&mut self) -> Option<&mut T>
[src]
fn iter(&self) -> RingBufferIterator<'_, T, Self>
[src]
fn iter_mut(&mut self) -> RingBufferMutIterator<'_, T, Self>
[src]
fn to_vec(&self) -> Vec<T> where
T: Clone,
[src]
T: Clone,
fn contains(&self, elem: &T) -> bool where
T: PartialEq,
[src]
T: PartialEq,
impl<T> StructuralEq for AllocRingBuffer<T>
[src]
impl<T> StructuralPartialEq for AllocRingBuffer<T>
[src]
Auto Trait Implementations
impl<T> Send for AllocRingBuffer<T> where
T: Send,
T: Send,
impl<T> Sync for AllocRingBuffer<T> where
T: Sync,
T: Sync,
impl<T> Unpin for AllocRingBuffer<T> where
T: Unpin,
T: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,