macro_rules! internal_enum {
    (
        $( #[$meta:meta] )*
        $pub:vis enum $name:ident {
            $( $variant_name:ident ),+ $(,)?
        }
    ) => { ... };
    (
        $( #[$meta:meta] )*
        $pub:vis enum $name:ident {
            $( $variant_name:ident $( $variant_data:tt )? ),+ $(,)?
        }
    ) => { ... };
}