macro_rules! err { ($error_type:ident) => { ... }; ($error_type:ident::$process_and_influence:literal) => { ... }; ($error_type:ident::$process_and_influence:literal:$reason:expr) => { ... }; ($error_type:ident, $($value:expr),*) => { ... }; ($error_type:ident::$process_and_influence:literal, $($value:expr),*) => { ... }; ($error_type:ident::$process_and_influence:literal:$reason:expr, $($value:expr),*) => { ... }; }