#枚举 # #变体 #生成 #定义 #部分排序 #部分相等

无std c-enum

用于生成类似C语言的枚举的宏

7个版本

0.2.3 2024年2月7日
0.2.2 2023年10月24日
0.1.2 2023年9月26日
0.1.1 2023年5月17日

#87 in 无标准库

Download history 250/week @ 2024-04-14 340/week @ 2024-04-21 346/week @ 2024-04-28 168/week @ 2024-05-05 72/week @ 2024-05-12 99/week @ 2024-05-19 20/week @ 2024-05-26 79/week @ 2024-06-02 364/week @ 2024-06-09 25/week @ 2024-06-16 138/week @ 2024-06-23 21/week @ 2024-06-30 53/week @ 2024-07-07 82/week @ 2024-07-14 9/week @ 2024-07-21 166/week @ 2024-07-28

310 每月下载量
用于 2 crates

MIT/Apache

68KB
1.5K SLoC

c-enum

ci badge crates.io badge docs.rs badge

Rust宏,用于轻松定义类似于C枚举的结构体。

示例

use c_enum::c_enum;

c_enum! {
    #[derive(Copy, Clone, PartialEq, Eq, Ord, PartialOrd, Hash)]
    pub enum Variant: u32 {
        A,
        B,
        C = 5,
    }
}

fn main() {
    let v1 = Variant::A;
    let v2 = Variant::from(77);

    match v1 {
        Variant::A => println!("A"),   // named values...
        Variant::B => println!("B"),
        Variant(77) => println!("77"), // values without named variants also work
        _ => println!("other value"),
    }
}

无运行时依赖