macro_rules! context { ($ctx:ident, config={ $key:ident: $cfg:ident }) => { ... }; ($ctx:ident, config={ $key:ident: $cfg:ident }, config_file=$cfg_file:expr) => { ... }; ($($ctx:ident, config={ $key:ident: $cfg:ident });+) => { ... }; (config_file=$cfg_file:expr; $($ctx:ident, config={ $key:ident: $cfg:ident });+) => { ... }; }