We're going to update the MSRV to 1.90 soon, and we might as well remove the hacks we have in place from bug 1982939 and bug 1995920 for vendoring backwards compatibility early. Differential Revision: https://phabricator.services.mozilla.com/D279628
arraydeque
A circular buffer with fixed capacity. Requires Rust 1.59+.
This crate is inspired by bluss/arrayvec
Documentation
Usage
First, add the following to your Cargo.toml:
[dependencies]
arraydeque = "0.5"
Next, add this to your crate root:
extern crate arraydeque;
Currently arraydeque by default links to the standard library, but if you would
instead like to use arraydeque in a #![no_std] situation or crate you can
request this via:
[dependencies]
arraydeque = { version = "0.4", default-features = false }
Example
extern crate arraydeque;
use arraydeque::ArrayDeque;
fn main() {
let mut deque: ArrayDeque<_, 2> = ArrayDeque::new();
assert_eq!(deque.capacity(), 2);
assert_eq!(deque.len(), 0);
deque.push_back(1);
deque.push_back(2);
assert_eq!(deque.len(), 2);
assert_eq!(deque.pop_front(), Some(1));
assert_eq!(deque.pop_front(), Some(2));
assert_eq!(deque.pop_front(), None);
}
Changelog
-
0.5.1 Make
ArrayDeque::new()a const fn. -
0.5.0 Support consnt generic capacity. Remove
use_generic_arrayfeature. -
0.4.5 Update
generic-arrayto0.12. -
0.4.4 Fix UB:
Some(ArrayDeque::new(xs)).is_some() == false. (#12) -
0.4.3 Add support for
generic-arrayunderuse_generic_arrayfeature. -
0.4.1 Capacity now equal to backend_array.len().
-
0.3.1 Add behaviors:
SaturatingandWrapping.
Contribution
All kinds of contribution are welcomed.
- Issues. Feel free to open an issue when you find typos, bugs, or have any question.
- Pull requests. New collection, better implementation, more tests, more documents and typo fixes are all welcomed.
License
Licensed under MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)