enum-ordinalize 1.0.0

This crates provides `ordinalize_enum` and `create_ordinalized_enum` macros to let enums can not only get its variants' ordinal but also be constructed with an ordinal.
Documentation
#[macro_use]
extern crate enum_ordinalize;

#[test]
fn test_ordinalize_enum() {
    #[derive(Debug, PartialEq)]
    enum MyEnum {
        Zero,
        One,
        Two,
    }

    ordinalize_enum!(MyEnum,
        u8,
        Zero,
        One,
        Two
    );

    assert_eq!(2, MyEnum::Two.ordinal());
    assert_eq!(Some(MyEnum::One), MyEnum::from_ordinal(1));
}

#[test]
fn test_create_ordinalized_enum_1_1() {
    create_ordinalized_enum!(MyEnum,
        u8,
        Zero,
        One,
        Two
    );

    assert_eq!(2, MyEnum::Two.ordinal());
    assert_eq!(Some(MyEnum::One), MyEnum::from_ordinal(1));
}

#[test]
fn test_create_ordinalized_enum_1_2() {
    create_ordinalized_enum!(pub MyEnum,
        u8,
        Zero,
        One,
        Two
    );

    assert_eq!(2, MyEnum::Two.ordinal());
    assert_eq!(Some(MyEnum::One), MyEnum::from_ordinal(1));
}

#[test]
fn test_create_ordinalized_enum_2_1() {
    create_ordinalized_enum!(MyEnum,
        u8,
        Two = 2,
        Four = 4,
        Eight = 8
    );

    assert_eq!(2, MyEnum::Two.ordinal());
    assert_eq!(Some(MyEnum::Four), MyEnum::from_ordinal(4));
}

#[test]
fn test_create_ordinalized_enum_2_2() {
    create_ordinalized_enum!(pub MyEnum,
        u8,
        Two = 2,
        Four = 4,
        Eight = 8
    );

    assert_eq!(2, MyEnum::Two.ordinal());
    assert_eq!(Some(MyEnum::Four), MyEnum::from_ordinal(4));
}