macro_rules! impl_recorder { ($type_name:ident; $($name:ident => $val:expr),*) => { ... }; ($vis:vis struct $type_name:ident; $($name:ident => $val:expr),*) => { ... }; (impl identifier, $name:literal) => { ... }; (impl before_search, $br:expr) => { ... }; (impl after_search, $br:expr) => { ... }; (impl before_rewrite, $br:expr) => { ... }; (impl after_rewrite, $br:expr) => { ... }; }