|0.2.2||Sep 1, 2019|
|0.2.1||Aug 3, 2019|
|0.2.0||Jul 24, 2017|
|0.1.2||Jul 21, 2017|
#124 in Data structures
1,063 downloads per month
Used in 4 crates
A circular buffer-like queue container. Created with a set capacity. When pushing new items over capacity, old ones get overwritten. Supports iteration in newest to oldest order.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
A circular buffer-like queue.
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's a built-in iterator that goes from the newest items to the oldest ones.
Two queues are considered equal if iterating over them would yield the same sequence of elements.
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));