macro_rules! create_ordinalized_enum {
( $name:ident $( ,$variants:ident )+ $(,)* ) => { ... };
( $name:ident $( ,$variants:ident = $values:expr )+ $(,)* ) => { ... };
( $name:ident: $t:ident $( ,$variants:ident )+ $(,)* ) => { ... };
( $name:ident: $t:ident $( ,$variants:ident = $values:expr )+ $(,)* ) => { ... };
( $v:vis $name:ident $( ,$variants:ident )+ $(,)* ) => { ... };
( $v:vis $name:ident $( ,$variants:ident = $values:expr )+ $(,)* ) => { ... };
( $v:vis $name:ident: $t:ident $( ,$variants:ident )+ $(,)* ) => { ... };
( $v:vis $name:ident: $t:ident $( ,$variants:ident = $values:expr )+ $(,)* ) => { ... };
}
Create an enum and implement a ordinal method, as well as from_ordinal and from_ordinal_unsafe associated functions for it. The new enum also implements Debug, PartialOrd, Ord, PartialEq, Clone, Eq, Hash and Copy traits.