copyvec

Crates.iocopyvec
lib.rscopyvec
version0.1.2
sourcesrc
created_at2024-07-11 21:05:17.804494
updated_at2024-07-13 15:02:28.29009
descriptionA contiguous growable array type, with a fixed, stack-alllocated capacity that implements Copy.
homepagehttps://crates.io/crates/copyvec
repositoryhttps://github.com/aatifsyed/copyvec
max_upload_size
id1300029
size34,932
Aatif Syed (aatifsyed)

documentation

https://docs.rs/copyvec

README

A stack-allocated sequence that mirror's Vec's API, but:

  • Implements [Copy] (and can only hold [Copy] types).
  • Does not grow.
  • Is #[no_std]/no-alloc compatible.

// 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

Commit count: 19

cargo fmt