macro_rules! def_enum {
(
$ident:ident ($discriminant_type:ident) {
$(
$discriminant:literal = $variant:ident
$(
{
$(
$field:ident $typ:ident $(<$generics:ident>)?
);* $(;)?
}
)?
),* $(,)?
}
) => { ... };
}