128 字
1 分钟
Rust Enum 宏
2024-04-19
[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,
}
MacroDescription
[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/
作者
lollipopkit
发布于
2024-04-19
许可协议
CC BY-NC-SA 4.0