7 releases
0.2.1 | Sep 5, 2024 |
---|---|
0.2.0 | Jul 13, 2024 |
0.1.5 | Jul 12, 2024 |
#633 in Rust patterns
1,196 downloads per month
49KB
865 lines
A stack-allocated sequence that mirror's Vec
's API,
but:
// const-friendly
const VEC: CopyVec<&str, 10> = CopyVec::new();
// easy initialising
let mut vec = copyvec!["a", "b", "c"; + 2];
// ^~ with excess capacity
// use the API's you know
vec.push("d");
// including iteration
for it in &mut vec {
if *it == "a" {
*it = "A"
}
}
assert_eq!(vec, ["A", "b", "c", "d"]);
vec.retain(|it| *it == "b" || *it == "c");
assert_eq!(vec.remove(0), "b");
Other features
If you like this crate, you may also enjoy stackstack
lib.rs
:
A stack-allocated sequence that mirror's Vec
's API,
but:
// const-friendly
const VEC: CopyVec<&str, 10> = CopyVec::new();
// easy initialising
let mut vec = copyvec!["a", "b", "c"; + 2];
// ^~ with excess capacity
// use the API's you know
vec.push("d");
// including iteration
for it in &mut vec {
if *it == "a" {
*it = "A"
}
}
assert_eq!(vec, ["A", "b", "c", "d"]);
vec.retain(|it| *it == "b" || *it == "c");
assert_eq!(vec.remove(0), "b");
Other features
If you like this crate, you may also enjoy stackstack
Dependencies
~0–350KB