[−][src]Crate atomic_enum
An attribute to create an atomic wrapper around a C-style enum.
Internally, the generated wrapper uses an AtomicUsize
to store the value.
The atomic operations have the same semantics as the equivalent operations
of AtomicUsize
.
Example
#[atomic_enum] #[derive(PartialEq)] enum CatState { Dead = 0, BothDeadAndAlive, Alive, } let state = AtomicCatState::new(CatState::Dead); state.store(CatState::Alive, Ordering::Relaxed); assert_eq!(state.load(Ordering::Relaxed), CatState::Alive);
This attribute does not use or generate any unsafe code.
Attribute Macros
atomic_enum | Creates an atomic wrapper around a C-style enum. |