macro_rules! non_empty_vec {
() => { ... };
($value: expr $(,)?) => { ... };
($value: expr; const $count: expr) => { ... };
($value: expr; run $count: expr) => { ... };
($value: expr; $count: expr) => { ... };
($value: expr, $($rest: expr),+ $(,)?) => { ... };
}Available on crate features
std or alloc only.Expand description
Constructs NonEmptyVec<T> containing the provided arguments.
ยงExamples
Providing no arguments results in compile-time errors:
โ
use non_empty_slice::non_empty_vec;
let never = non_empty_vec![];Providing one argument:
use non_empty_slice::non_empty_vec;
let single = non_empty_vec![13];Providing argument implementing Clone and non-zero count of type Size:
use non_empty_slice::non_empty_vec;
use non_zero_size::const_size;
let repeated = non_empty_vec![13; const_size!(42)];Equivalently, one can use:
use non_empty_slice::non_empty_vec;
let repeated = non_empty_vec![13; const 42];Passing zero will cause compilation to fail:
โ
use non_empty_slice::non_empty_vec;
let never = non_empty_vec![13; const 0];Instead of something like this:
use non_empty_slice::non_empty_vec;
use non_zero_size::size;
let repeated = non_empty_vec![13; size!(42)];It is possible to use this instead:
use non_empty_slice::non_empty_vec;
let repeated = non_empty_vec![13; run 42];Passing zero will cause panics:
โ
use non_empty_slice::non_empty_vec;
let never = non_empty_vec![13; run 0];Finally, providing multiple arguments:
use non_empty_slice::non_empty_vec;
let nice = non_empty_vec![13, 42, 69];