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());