#bitflags #flags #macro #enums

无std flags-macro

提供编写位标志的辅助宏

5个版本

使用旧的Rust 2015

0.1.4 2020年1月8日
0.1.3 2018年11月24日
0.1.2 2018年11月24日
0.1.1 2018年11月24日
0.1.0 2018年11月24日

#212无标准库

每月 下载 35

CC0 许可证

9KB
74

flags-macro

docs.rs

该crate提供了一个方便的宏 flags 用于构造位标志。它旨在与 bitflagsenumflags 兼容,但可与任何类似位标志的类型一起使用。

示例

bitflags:

#[macro_use]
extern crate bitflags;
bitflags! {
    struct Test: u32 {
        const A = 0b0001;
        const B = 0b0010;
    }
}

let flags0 = flags![Test::{}];
let flags1 = flags![Test::{A}];
let flags2 = flags![Test::{A | B}];

assert_eq!(flags0, Test::empty());
assert_eq!(flags1, Test::A);
assert_eq!(flags2, Test::A | Test::B);

enumflags:

#[macro_use]
extern crate enumflags;
#[derive(EnumFlags, Copy, Clone, PartialEq, Eq, Debug)]
#[repr(u8)]
pub enum Test { A = 0b0001, B = 0b0010 }

let flags0 = flags![Test::{}];
let flags1 = flags![Test::{A}];
let flags2 = flags![Test::{A | B}];

assert_eq!(flags0, enumflags::BitFlags::empty());
assert_eq!(flags1, Test::A);
assert_eq!(flags2, Test::A | Test::B);

许可证:CC0-1.0

无运行时依赖