User defined ad-hoc enums

Sometimes the library users have to define these ad-hoc enums themselves to implement more traits which are not implemented for predefined enums in this library.


#![allow(unused)]
fn main() {
use enumx::export::*;

def_impls! {
    #[derive( SomeTraitNeverHeardByEnumxAuthor )]
    enum Enum![ 0..=16 ];
}
}

Enum![ 0..=16 ] means Enum0,Enum1,.. up to Enum16. The name Enum can be replaced by any valid identity. For instance, MyEnum![ 1..=6 ] means MyEnum1, MyEnum2, up to MyEnum6.

Where clause is supported by def_impls!{}.


#![allow(unused)]
fn main() {
    use enumx::export::*;

    def_impls! {
        pub enum Enum![ 0..=16 ]
            where _Variants!(): Iterator<Item=i32>;
    }
}