#枚举 #from-str #derive #proc #macro-derive #macro

enum_from_str_derive

为枚举启用 derive FromStr

1个不稳定版本

0.1.0 2019年2月5日

#20 in #from-str

Download history 41/week @ 2024-03-11 87/week @ 2024-03-18 26/week @ 2024-03-25 49/week @ 2024-04-01 14/week @ 2024-04-08 22/week @ 2024-04-15 72/week @ 2024-04-22 63/week @ 2024-04-29 114/week @ 2024-05-06 56/week @ 2024-05-13 80/week @ 2024-05-20 21/week @ 2024-05-27 24/week @ 2024-06-03 29/week @ 2024-06-10 33/week @ 2024-06-17 46/week @ 2024-06-24

每月下载量136
3 crate 中使用

MIT 许可协议

4KB
52 代码行

enum-from-str-rs

允许为枚举启用 derive FromStr

概述

此库为枚举添加了 #[derive(FromStr)] 属性,从而允许将字符串解析为枚举变体。尽管有其他库允许这样做,如 enum_derive,但它只能解析具有变体确切名称的字符串。此库允许您为每个枚举变体定义一个自定义字符串。

基本用法

use enum_from_str::ParseEnumVariantError;
use enum_from_str_derive::FromStr;

#[derive(FromStr)]
enum SomeEnum {
    #[from_str="foo"]
    Foo,
    Bar, // equals to #[from_str="Bar"]
}

fn example() {
    "foo".parse::<SomeEnum>().unwrap();
    "Bar".parse::<SomeEnum>().unwrap();
}

已知问题

目前,proc-macro crate 不允许导出除了过程宏函数之外的内容。这就是为什么 ParseEnumVariantError 在不同的 crate 中。当 Rust 允许这样做时,它应该被移动到单个 crate 中。

依赖项

~2MB
~47K SLoC