#枚举 #标志 #属性 # #u32 #自动 #已检查

auto-enum

提供用于构建枚举的属性宏,方便与FFI一起使用,包括“枚举”标志

4个版本

使用旧Rust 2015

0.2.0-alpha12018年11月25日
0.1.2 2018年10月27日
0.1.1 2018年10月27日
0.1.0 2018年10月26日

#32 in #已检查

Download history 100/week @ 2024-03-13 116/week @ 2024-03-20 142/week @ 2024-03-27 107/week @ 2024-04-03 95/week @ 2024-04-10 124/week @ 2024-04-17 123/week @ 2024-04-24 117/week @ 2024-05-01 93/week @ 2024-05-08 99/week @ 2024-05-15 102/week @ 2024-05-22 105/week @ 2024-05-29 113/week @ 2024-06-05 105/week @ 2024-06-12 125/week @ 2024-06-19 94/week @ 2024-06-26

450 每月下载量
4 个crate中使用 (3 直接)

MIT 许可证

32KB
739

提供方便与FFI一起使用的自动枚举实现

#[macro_use]
extern crate auto_enum;
extern crate checked_enum;

#[auto_enum(u32, checked)]
pub enum SweepDirection {
    CounterClockwise = 0,
    Clockwise = 1,
}

assert_eq!(SweepDirection::from_u32(0), Some(SweepDirection::CounterClockwise));
#[macro_use]
extern crate auto_enum;

#[enum_flags(u32)]
pub enum BitmapOptions {
    TARGET = 0x1,
    CANNOT_DRAW = 0x2,
    CPU_READ = 0x4,
    GDI_COMPATIBLE = 0x8,
}

let flags = BitmapOptions::TARGET | BitmapOptions::GDI_COMPATIBLE;
assert!(flags.is_set(BitmapOptions::TARGET));
assert!(!flags.is_set(BitmapOptions::CPU_READ));

依赖项

~2MB
~46K SLoC