enum_const_value 0.4.3

Providing const values for enums. Unit and enums with associated types are supported. Each variant gets a unique sequential value.
Documentation

Enum const value

Latest Version Build Status

A derive macro that will add const values for enum cases, even enums with associated types. When dealing with an enum with associated types, the macro creates a new enum with the const values.

Usage

[dependencies]
enum_const_value = "0.1.0"

Now in your project, add the following:

use enum_const_value::EnumConstValue;

and use the derive macro on an enum

#[derive(EnumConstValue)]
enum MyEnum {
    SomeI32(i32),
    SomeString(String)
}

Now, you can use use the const_value() method on an enum case like so:

#[test]
fn test_my_enum() {
    assert_eq!(0, MyEnum::SomeI32(1).const_value());
    assert_eq!(1, MyEnum::SomeString("MyString".to_string()).const_value());

    assert_eq!(0, MyEnumConstValue::SomeI32.value());
    assert_eq!(1, MyEnumConstValue::SomeString.value());
}

TODO

  • Custom enum case values (can be done by adding attributes)
  • Custom derived enum name (is currently always $ENUMNAME$ConstValue)

License