Expand description
A circular buffer-like queue.
The CircularQueue<T>
is created with a set capacity, then items are pushed in. When the queue
runs out of capacity, newer items start overwriting the old ones, starting from the oldest.
There are built-in iterators that go from the newest items to the oldest ones and from the oldest items to the newest ones.
Two queues are considered equal if iterating over them with iter()
would yield the same
sequence of elements.
Enable the serde_support
feature for Serde support.
§Examples
use circular_queue::CircularQueue;
let mut queue = CircularQueue::with_capacity(3);
queue.push(1);
queue.push(2);
queue.push(3);
queue.push(4);
assert_eq!(queue.len(), 3);
let mut iter = queue.iter();
assert_eq!(iter.next(), Some(&4));
assert_eq!(iter.next(), Some(&3));
assert_eq!(iter.next(), Some(&2));
Structs§
- Circular
Queue - A circular buffer-like queue.
Type Aliases§
- AscIter
- An ascending iterator over
CircularQueue<T>
. - AscIter
Mut - An mutable ascending iterator over
CircularQueue<T>
. - Iter
- An iterator over
CircularQueue<T>
. - IterMut
- A mutable iterator over
CircularQueue<T>
. - Popped
- A value popped from
CircularQueue<T>
as the result of a push operation.