macro_rules! metadata { {} => { ... }; { roles { $($role:ident => $rule:expr;)* }, init { $($key:expr => $value:expr, $locked:ident;)* } } => { ... }; { init { $($key:expr => $value:expr, $locked:ident;)* } } => { ... }; { roles { $($role:ident => $rule:expr;)* } } => { ... }; }