#枚举 #字符串 #字符串转换 #转换

marked-enum

将枚举转换为字符串/从字符串转换枚举

2 个版本

0.1.1 2022 年 3 月 26 日
0.1.0 2022 年 3 月 26 日

#2419 in Rust 模式

MIT 许可证

5KB

标记化枚举 标记化枚举 at crates.io 标记化枚举 at docs.rs

将枚举转换为字符串/从字符串转换枚举。

入门指南

实现了 Derives ToString, FromStr 实现方法

#[derive(ToString, FromStr)]
enum Test {
    Foo,
    Bar,
}

assert_eq!(Test::Foo.to_string(), "Foo");
assert_eq!(Test::from_str("Foo").unwrap(), Test::Foo);

大小写

您可以使用属性指定 snake_case

#[derive(ToString, FromStr)]
#[label(rename_all = "snake_case")]
enum Test {
    SnakeCase,
}

serde 一起使用

labelled-enum 提供 serde_plugin 功能,以便与 serde Serializer/Deserializer 一起使用

// install labelled-enum with --features serde_plugin

#[derive(Serialize, Deserialize)]
struct Wrapper {
    #[serde(with = "labelled_enum::serde_plugin")]
    test_snake_case: TestSnakeCase,
}

依赖关系

~1.5MB
~37K SLoC