Skip to main content

atomic_bitflagset

Macro atomic_bitflagset 

Source
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).