Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 1013 Bytes

README.md

File metadata and controls

32 lines (25 loc) · 1013 Bytes

enum-stringify

Set of macros (only one for now) to generate a string representation of an enum. When using #[derive(EnumStringify)] on an enum, it will implement std::fmt::Display, TryFrom<&str>, TryFrom<String> and std::str::FromStr for it. It will use the name of the enum variant as the string representation.

Usage

use enum_stringify::EnumStringify;

#[derive(EnumStringify)]
enum MyEnum {
    Variant1,
    Variant2,
    Variant3,
}

fn main() {
    println!("{}", MyEnum::Variant1); // Prints "Variant1"
    assert_eq!(MyEnum::Variant1.to_string(), "Variant1");
    assert_eq!(MyEnum::try_from("Variant2").unwrap(), MyEnum::Variant2);
    assert_eq!(MyEnum::try_from("Variant3".to_string()).unwrap(), MyEnum::Variant3);
    assert_eq!(MyEnum::from_str("Variant1").unwrap(), MyEnum::Variant1);
}

Documentation and installation

See docs.rs for documentation. It is available on crates.io as well.