macro_rules! atomic_bitflagset {
($vis:vis struct $name:ident($atomic:ty) on $set:ty) => { ... };
($vis:vis struct $name:ident($atomic:ty) on $set:ty {
$($(#[$inner:meta])* const $flag:ident = $value:expr;)*
}) => { ... };
(@enum_impl $vis:vis struct $name:ident($atomic:ty, $set:ty) : $typ:ty) => { ... };
(@position_impl $vis:vis struct $name:ident($atomic:ty, $set:ty) {
$($(#[$inner:meta])* const $flag:ident = $value:expr;)*
}) => { ... };
}Expand description
Generates an atomic bitset wrapper over [AtomicBitSet].
Two forms are supported, mirroring bitflagset!:
- Enum form:
atomic_bitflagset!(pub struct AtomicMySet(AtomicU8) on MySet); - Position form:
atomic_bitflagset! { pub struct AtomicMyFlags(AtomicU8) on MyFlags { const A = 0; } }
Methods that mutate bits take &self (atomic interior mutability).