macro_rules! atomic_fixed_vec {
() => { ... };
($($elem:expr),+ $(,)?) => { ... };
($elem:expr; $len:expr) => { ... };
}
Expand description
Creates an AtomicFixedVec
with default parameters.
This macro simplifies the creation of an AtomicFixedVec
. It uses a u64
storage backend and BitWidth::Minimal
for space efficiency.
There are two forms of this macro:
-
Create a vector from a list of elements:
let vec = atomic_fixed_vec![10u32, 20, 30];
-
Create a vector from a repeated element:
let vec = atomic_fixed_vec![0i16; 100];
ยงExamples
use compressed_intvec::prelude::*;
use compressed_intvec::atomic_fixed_vec;
use compressed_intvec::fixed::UAtomicFixedVec;
// Create a vector from a list of elements. The type is inferred.
let vec = atomic_fixed_vec![10u32, 20, 30];
assert_eq!(vec.len(), 3);
assert_eq!(vec.bit_width(), 5); // 30 requires 5 bits
// Create a vector from a repeated element.
let vec_rep = atomic_fixed_vec![0i16; 100];
assert_eq!(vec_rep.len(), 100);
assert_eq!(vec_rep.get(50), Some(0));
// Create an empty vector (type annotation is required).
let empty: UAtomicFixedVec<u64> = atomic_fixed_vec![];
assert!(empty.is_empty());