Struct ringbuffer::ConstGenericRingBuffer [−][src]
pub struct ConstGenericRingBuffer<T, const CAP: usize> { /* fields omitted */ }
Expand description
The ConstGenericRingBuffer
struct is a RingBuffer
implementation which does not require alloc
but
uses const generics instead.
ConstGenericRingBuffer
allocates the ringbuffer on the stack, and the size must be known at
compile time through const-generics.
Example
use ringbuffer::{ConstGenericRingBuffer, RingBuffer, RingBufferExt, RingBufferWrite};
let mut buffer = ConstGenericRingBuffer::<_, 2>::new();
// 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
Trait Implementations
Extends a collection with the contents of an iterator. Read more
extend_one
)Extends a collection with exactly one element.
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Creates a value from an iterator. Read more
impl<T: PartialEq, const CAP: usize> PartialEq<ConstGenericRingBuffer<T, CAP>> for ConstGenericRingBuffer<T, CAP>
impl<T: PartialEq, const CAP: usize> PartialEq<ConstGenericRingBuffer<T, CAP>> for ConstGenericRingBuffer<T, CAP>
Returns the length of the internal buffer. This length grows up to the capacity and then stops growing. This is because when the length is reached, new items are appended at the start. Read more
Gets a value relative to the current index. 0 is the next index to be written to with push. -1 and down are the last elements pushed and 0 and up are the items that were pushed the longest ago. Read more
Gets a value relative to the current index mutably. 0 is the next index to be written to with push. -1 and down are the last elements pushed and 0 and up are the items that were pushed the longest ago. Read more
Gets a value relative to the start of the array (rarely useful, usually you want Self::get
)
Gets a value mutably relative to the start of the array (rarely useful, usually you want Self::get_mut
)
Empties the buffer entirely. Sets the length to 0 but keeps the capacity allocated.
Sets every element in the ringbuffer to the value returned by f.
Sets every element in the ringbuffer to it’s default value
Returns the value at the current index.
This is the value that will be overwritten by the next push and also the value pushed
the longest ago. (alias of Self::front
) Read more
Returns the value at the front of the queue. This is the value that will be overwritten by the next push and also the value pushed the longest ago. (alias of peek) Read more
Returns a mutable reference to the value at the back of the queue. This is the value that will be overwritten by the next push. (alias of peek) Read more
Returns the value at the back of the queue. This is the item that was pushed most recently. Read more
Returns a mutable reference to the value at the back of the queue. This is the item that was pushed most recently. Read more
Creates a mutable iterator over the buffer starting from the item pushed the longest ago, and ending at the element most recently pushed. Read more
Creates an iterator over the buffer starting from the item pushed the longest ago, and ending at the element most recently pushed. Read more
Converts the buffer to a vector. This Copies all elements in the ringbuffer.
dequeues the top item off the ringbuffer, and moves this item out.
dequeues the top item off the queue, but does not return it. Instead it is dropped. If the ringbuffer is empty, this function is a nop. Read more
Auto Trait Implementations
impl<T, const CAP: usize> RefUnwindSafe for ConstGenericRingBuffer<T, CAP> where
T: RefUnwindSafe,
impl<T, const CAP: usize> Send for ConstGenericRingBuffer<T, CAP> where
T: Send,
impl<T, const CAP: usize> Sync for ConstGenericRingBuffer<T, CAP> where
T: Sync,
impl<T, const CAP: usize> Unpin for ConstGenericRingBuffer<T, CAP> where
T: Unpin,
impl<T, const CAP: usize> UnwindSafe for ConstGenericRingBuffer<T, CAP> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more