Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 1.44 KB

README.md

File metadata and controls

56 lines (41 loc) · 1.44 KB

bitflags

Rust Join the chat at https://gitter.im/bitflags/Lobby Latest version Documentation License

A Rust macro to generate structures which behave like a set of bitflags

Usage

Add this to your Cargo.toml:

[dependencies]
bitflags = "1.3"

and this to your source code:

use bitflags::bitflags;

Example

Generate a flags structure:

use bitflags::bitflags;

bitflags! {
    struct Flags: u32 {
        const A = 0b00000001;
        const B = 0b00000010;
        const C = 0b00000100;
        const ABC = Self::A.bits | Self::B.bits | Self::C.bits;
    }
}

fn main() {
    let mut flags = Flags::A | Flags::B;
    assert!(flags.contains(Flags::A));
    flags.set(Flags::C, true);
    assert!(flags.contains(Flags::A | Flags::C));
}

Rust Version Support

The minimum supported Rust version is 1.46 due to use of associated constants and const functions.