atomic_fixed_vec

Macro atomic_fixed_vec 

Source
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());