macro_rules! loose_enum_type {
(
$(#[$outer:meta])*
$vis:vis enum $name:ident: $ty:ident {
$(
$(#[$meta:meta])*
$variant:ident = $value:expr
),+ $(,)?
}
) => { ... };
(
$(#[$outer:meta])*
$vis:vis enum $name:ident<$ty:ident $( : $first_bound:tt $(+ $other_bounds:tt)* )?> {
$(
$(#[$meta:meta])*
$variant:ident = $value:expr
),+ $(,)?
}
) => { ... };
}