#[macro_export]
macro_rules! chunked_vec {
() => {
$crate::ChunkedVec::new()
};
($elem:expr; $n:expr) => {{
let mut vec = $crate::ChunkedVec::with_capacity($n);
vec.extend(::std::iter::repeat($elem).take($n));
vec
}};
($($x:expr),+ $(,)?) => {{
let mut vec = $crate::ChunkedVec::new();
$(vec.push($x);)+
vec
}};
}
#[cfg(test)]
mod tests {
use crate::ChunkedVec;
#[test]
fn test_empty_chunked_vec() {
let v: ChunkedVec<i32> = chunked_vec![];
assert_eq!(v.len(), 0);
}
#[test]
fn test_chunked_vec_with_elements() {
let v = chunked_vec![1, 2, 3];
assert_eq!(v.len(), 3);
assert_eq!(v[0], 1);
assert_eq!(v[1], 2);
assert_eq!(v[2], 3);
}
#[test]
fn test_chunked_vec_with_size() {
let v = chunked_vec![1; 3];
assert_eq!(v.len(), 3);
assert_eq!(v[0], 1);
assert_eq!(v[1], 1);
assert_eq!(v[2], 1);
}
#[test]
fn test_chunked_vec_with_trailing_comma() {
let v = chunked_vec![1, 2, 3,];
assert_eq!(v.len(), 3);
assert_eq!(v[0], 1);
assert_eq!(v[1], 2);
assert_eq!(v[2], 3);
}
}