#quote #enums #macro #variant #unwrap #methods #generate

unwrap-enum-proc-macro

生成访问枚举变体的方法

2个不稳定版本

0.1.0 2024年7月22日
0.0.2 2024年5月19日

43#unwrap

Download history 158/week @ 2024-05-18 8/week @ 2024-05-25 140/week @ 2024-07-20 19/week @ 2024-07-27

每月下载量 159
用于 unwrap-enum

GPL-3.0-or-later

8KB
147

unwrap-enum

一个生成将枚举解包为特定变体的方法的crate,例如 is_noneis_noneOption 上。

示例

use unwrap_enum::{EnumAs, EnumIs};

#[derive(Clone, Debug, EnumAs, EnumIs)]
enum Value {
    String(String),
    Int(i64)
}

let value = Value::String("hello world".to_string());

assert!(value.is_string());
assert!(!value.is_int());
assert!(matches!(value.as_string(), Some(string) if string == "hello world"));
assert!(matches!(value.as_int(), None));

待办事项

实现 EnumAsMut 和 EnumInto derive 宏。

依赖关系

~0.7–1.2MB
~25K SLoC