#枚举 #引用 #变体 # #方法 #展开 #生成

unwrap-enum

生成访问枚举变体的方法

2个不稳定版本

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

#1326 in Rust模式

Download history 155/week @ 2024-05-17 13/week @ 2024-05-24 132/week @ 2024-07-19 22/week @ 2024-07-26 1/week @ 2024-08-02

每月155次下载

GPL-3.0-or-later

15KB

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宏。


lib.rs:

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.6–1.1MB
~25K SLoC