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 过程宏
每月467次下载
用于 chimpanzee
18KB
318 行
enum-stringify
一组宏(目前只有一个)用于生成枚举的字符串表示。当在枚举上使用 #[derive(EnumStringify)]
时,它将实现 std::fmt::Display
、TryFrom<&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
(以及其他变体)。
文档和安装
依赖关系
~240–680KB
~16K SLoC