macro_rules! bail { ("pattern does not contain `{}`") => { ... }; ($msg : literal $(,) ?) => { ... }; ($err : expr $(,) ?) => { ... }; ($fmt : expr, $($arg : tt) *) => { ... }; }