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.
[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)]enumMyEnum{SomeI32(i32),SomeString(String)}Now, you can use use the const_value() method on an enum case like so:
#[test]fntest_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());}- Custom enum case values (can be done by adding attributes)
- Custom derived enum name (is currently always $ENUMNAME$ConstValue)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.