7 个版本 (4 个重大更新)

0.5.0 2024年6月14日
0.4.2 2024年5月6日
0.4.1 2024年3月18日
0.4.0 2024年2月19日
0.1.0 2023年9月13日

#1572 in 过程宏

Download history 11/week @ 2024-04-24 145/week @ 2024-05-01 53/week @ 2024-05-08 30/week @ 2024-05-15 31/week @ 2024-05-22 46/week @ 2024-05-29 54/week @ 2024-06-05 164/week @ 2024-06-12 50/week @ 2024-06-19 119/week @ 2024-06-26 96/week @ 2024-07-03 86/week @ 2024-07-10 33/week @ 2024-07-17 105/week @ 2024-07-24 138/week @ 2024-07-31 173/week @ 2024-08-07

每月467次下载
用于 chimpanzee

MIT/Apache

18KB
318

enum-stringify

一组宏(目前只有一个)用于生成枚举的字符串表示。当在枚举上使用 #[derive(EnumStringify)] 时,它将实现 std::fmt::DisplayTryFrom<&str>TryFrom<String>std::str::FromStr。它将使用枚举变体的名称作为字符串表示。

使用方法

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);
}

自定义字符串表示

你可以通过为变体添加前缀和/或后缀以及更改字符串表示的格式来自定义枚举的字符串表示。

use enum_stringify::EnumStringify;

#[derive(EnumStringify)]
#[enum_stringify(prefix = "MyPrefix", suffix = "MySuffix", case = "upper")]
enum MyEnum {
    Variant1,
    Variant2,
    Variant3,
}

在这种情况下,MyEnum::Variant1 的字符串表示将是 MyPrefixVariant1MySuffix(以及其他变体)。

文档和安装

请参阅 docs.rs 了解文档。它也可在 crates.io 上找到。

依赖关系

~240–680KB
~16K SLoC