[][src]Macro flags_macro::set_array

macro_rules! set_array {
    ( $($ns:ident::)* {$($items:tt)*} ) => { ... };
}

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]);