Macro tiny_bit_flags

Source
macro_rules! tiny_bit_flags {
    (
        $(#[$outer:meta])*
        $vis:vis struct $BitFlags:ident: $T:ty {
            $(
                $(#[$inner:ident $($args:tt)*])*
                const $Flag:tt = $value:expr;
            )*
        }
    ) => { ... };
}
Expand description

Generate bit-flags struct and methods.

See module-level document for details.

Example:

tiny_bit_flags::tiny_bit_flags! {
    struct PrimFlags: u32 {
        const WRITABLE   = 0b00000001;
        const EXECUTABLE = 0b00000010;
    }
}

let mut f = PrimFlags(PrimFlags::WRITABLE); // initialize
assert!(f.is_writable()); // check flag
assert!(!f.is_executable());

f.clear_writable(); // clear flag
assert!(!f.is_writable());

f.set_executable(); // set flag
assert!(f.is_executable());