This crate provides a convenient macro flags
for constructing bitflags.
It's designed to be compatible with [bitflags
] and [enumflags
] but works
with any bitflags-like types.
bitflags
:
```rust
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}];
asserteq!(flags0, Test::empty()); asserteq!(flags1, Test::A); assert_eq!(flags2, Test::A | Test::B); ```
enumflags
:
```rust
extern crate enumflags;
pub enum Test { A = 0b0001, B = 0b0010 }
let flags0 = flags![Test::{}]; let flags1 = flags![Test::{A}]; let flags2 = flags![Test::{A | B}];
asserteq!(flags0, enumflags::BitFlags::empty()); asserteq!(flags1, Test::A); assert_eq!(flags2, Test::A | Test::B); ```
License: CC0-1.0