macro_rules! fmt_struct {
($fmt:tt => $name:ident; { $field0:ident : $tt0:tt $(, $field:ident : $tt:tt)* $(,)? }) => { ... };
($fmt:tt => $name:ident; { $field0:ident $(, $field:ident)* $(,)? }) => { ... };
($fmt:tt => $name:ident; {}) => { ... };
}