bitflag-attr 0.13.0

A macro to generate bitflags structures from C-like enums
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use bitflag_attr::bitflag;

#[bitflag(u32)]
#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)]
pub enum SimpleFlags {
    Flag1 = 1 << 9,
    Flag2 = 1 << 12,
    Flag3 = 1,
    Flag4 = Flag1 | Flag2,
}

fn main() {
    let mut flag = SimpleFlags::Flag1 | SimpleFlags::Flag2 | SimpleFlags::Flag3;

    flag.set(SimpleFlags::from_bits_retain(1 << 5));

    println!("{:#?}", flag);
}