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 • Rust 包仓库 250/week @ 2024-04-14 • Rust 包仓库 340/week @ 2024-04-21 • Rust 包仓库 346/week @ 2024-04-28 • Rust 包仓库 168/week @ 2024-05-05 • Rust 包仓库 72/week @ 2024-05-12 • Rust 包仓库 99/week @ 2024-05-19 • Rust 包仓库 20/week @ 2024-05-26 • Rust 包仓库 79/week @ 2024-06-02 • Rust 包仓库 364/week @ 2024-06-09 • Rust 包仓库 25/week @ 2024-06-16 • Rust 包仓库 138/week @ 2024-06-23 • Rust 包仓库 21/week @ 2024-06-30 • Rust 包仓库 53/week @ 2024-07-07 • Rust 包仓库 82/week @ 2024-07-14 • Rust 包仓库 9/week @ 2024-07-21 • Rust 包仓库 166/week @ 2024-07-28 • Rust 包仓库

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"),
    }
}

无运行时依赖