Macro flags_macro::set_array
source · macro_rules! set_array {
( $($ns:ident::)* {$($items:tt)*} ) => { ... };
}
Expand description
Emits an array expression containing zero or more values defined within the same namespace (or a similar language construct).
Syntax
set_array![path1::path2::{Item1 | ... | ItemN}]
set_array![path1::path2::{Item1, ..., ItemN}]
Item1
… ItemN
are identifiers. These expressions are expanded into:
[path1::path2::Item1, ..., path1::path2::ItemN]
Examples
mod values {
pub const A: u32 = 1;
pub const B: u32 = 2;
pub const C: u32 = 3;
}
let array0: [u32; 0] = set_array![values::{}];
let array1 = set_array![values::{A}];
let array2a = set_array![values::{A | B}];
let array2b = set_array![values::{A, B}]; // alternative syntax
assert_eq!(array0, []);
assert_eq!(array1, [values::A]);
assert_eq!(array2a, [values::A, values::B]);
assert_eq!(array2b, [values::A, values::B]);