macro_rules! impl_debug_for_struct {
    ($struct_name:ident, $formatter:expr $(, $self:expr)? $(,)*) => { ... };
    ($struct_name:ident, $formatter:expr, $self:expr, $( $(.$field:ident)? $((.$field_2:ident, $($field_2_fmt:tt)+))? $(let .$field_3:ident = $field_3_value:expr)? ),* $(,)*) => { ... };
}