macro_rules! err { ($variant : ident) => { ... }; ($variant : ident, $message : expr) => { ... }; ($variant : ident, $template : expr, $($args : expr), +) => { ... }; }