128 字
1 分钟
Rust Enum 宏
[dependencies]strum = "0.26"
#[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 添加一个对应表 |
Rust Enum 宏
https://blog.lpkt.cn/posts/rust-enum-macro/