macro_rules! enum_decl_parser_display {
    ( $(
		$( #[ $($attrs:tt)* ] )*
		$vis:vis enum $name:ident {
			$(
				$( #[ $($var_attr:tt)* ] )*
				$var_name:ident
				$(( $($tuple_name:ident: $tuple_type:ty),* ))?
				$({ $($struct_name:ident: $struct_type:ty),* })?
					= [ $($var_parse:tt)* ]
			),*
			$(,)?
		}
	)* ) => { ... };
    (
		input_lifetime = $inp:tt;
		$( #[ $($attrs:tt)* ] )*
		$vis:vis enum $name:ident <$param:tt> {
			$(
				$( #[ $($var_attr:tt)* ] )*
				$var_name:ident
					$(($($tuple_name:ident: $tuple_type:ty),*))?
						= [ $($var_parse:tt)* ]
			),*
			$(,)?
		}
	) => { ... };
}