macro_rules! generate_to_tokens { ( ($($arms:tt)*) $tokens:ident $name:ident { $(#[cfg $cfg_attr:tt])* $(#[doc $($doc_attr:tt)*])* $variant:ident, $($next:tt)* } ) => { ... }; ( ($($arms:tt)*) $tokens:ident $name:ident { $(#[cfg $cfg_attr:tt])* $(#[doc $($doc_attr:tt)*])* $variant:ident($member:ident), $($next:tt)* } ) => { ... }; (($($arms:tt)*) $tokens:ident $name:ident {}) => { ... }; }