macro_rules! enum_display {
( $enum_name:ident $( <$($param:tt),*> )?, $($rest:tt)* ) => { ... };
( @variants $enum_name:ident, $self:ident, $formatter:ident $(,)? ) => { ... };
(
@variants $enum_name:ident, $self:ident, $formatter:ident,
$var_name:ident { $($var_fields:tt)* } = |$var_arg:ident| { $($var_body:tt)* }
$(, $($rest:tt)* )?
) => { ... };
(
@variants $enum_name:ident, $self:ident, $formatter:ident,
$var_name:ident ( $($var_fields:tt)* ) = |$var_arg:ident| { $($var_body:tt)* }
$(, $($rest:tt)* )?
) => { ... };
(
@variants $enum_name:ident, $self:ident, $formatter:ident,
$var_name:ident = |$var_arg:ident| { $($var_body:tt)* }
$(, $($rest:tt)* )?
) => { ... };
(
@variants $enum_name:ident, $self:ident, $formatter:ident,
$var_name:ident { $($var_fields:tt)* } = [ $($var_arg:tt)* ]
$(, $($rest:tt)* )?
) => { ... };
(
@variants $enum_name:ident, $self:ident, $formatter:ident,
$var_name:ident ( $($var_fields:tt)* ) = [ $($var_arg:tt)* ]
$(, $($rest:tt)* )?
) => { ... };
(
@variants $enum_name:ident, $self:ident, $formatter:ident,
$var_name:ident = [ $($var_arg:tt)* ]
$(, $($rest:tt)* )?
) => { ... };
}