Rust Enum 宏

1
2
[dependencies]
strum = "0.26"
1
2
3
4
5
6
7
8
9
10
11
12
13
#[derive(Debug, EnumString, Display, VariantNames, AsRefStr)]
pub enum Target {
#[strum(serialize = "android")]
Android,
#[strum(serialize = "ios")]
Ios,
#[strum(serialize = "mac")]
Mac,
#[strum(serialize = "linux")]
Linux,
#[strum(serialize = "windows")]
Windows,
}
Macro Description
[EnumString] 解析 String 为 Enum
[Display] 转换 Enum 为 String
[FromRepr] 解析 int 为 Enum
[AsRefStr] 生成 as_ref()
[IntoStaticStr] 生成 &'static str
[EnumIter] 生成 Enum 迭代器
[EnumProperty] 为 Enum 添加自定义属性
[EnumMessage] 为 Enum 添加详细信息
[EnumDiscriminants] 为 Enum 添加 Discriminant
[EnumCount] 为 Enum 添加 COUNT: usize 常量
[VariantArray] 为 Enum 添加 VARIANTS: &'static [Self] 常量
[VariantNames] 为 Enum 添加 VARIANTS: &'static [&'static str] 常量
[EnumTable] 实验性,为 Enum 添加一个对应表