macro_rules! define_enum_field_type {
(FIELD $enum_name:ident {
$( $variant:ident => $value:expr, )+
} $other_variant:tt,
FIELD_TYPE [REQUIRED_AND_NOT_REQUIRED,BYTES] $required_field_type:ident $not_required_field_type:ident ) => { ... };
(FIELD $enum_name:ident {
$( $variant:ident => $value:expr, )+
} $other_variant:tt => WITH_MINIMUM $minimum_value:expr,
FIELD_TYPE [$required_sym:tt] $field_type:ident ) => { ... };
(FIELD $enum_name:ident {
$( $variant:ident => $value:expr, )+
},
FIELD_TYPE [REQUIRED_AND_NOT_REQUIRED,$must_be_sym:tt] $required_field_type:ident $not_required_field_type:ident ) => { ... };
(FIELD $enum_name:ident {
$( $variant:ident => $value:expr, )+
},
FIELD_TYPE [$required_sym:tt,$must_be_sym:tt] $field_type:ident ) => { ... };
}