Crates.io | atomic_enum_2021 |
lib.rs | atomic_enum_2021 |
version | 0.1.0 |
source | src |
created_at | 2022-07-25 08:27:13.268672 |
updated_at | 2022-07-25 08:27:13.268672 |
description | An attribute to create an atomic wrapper around a C-style enum, forked for Rust 2021 |
homepage | |
repository | https://github.com/l1npengtul/atomic_enum_2021 |
max_upload_size | |
id | 632438 |
size | 18,122 |
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
.
Forked and maintained by l1npengtul
to remove warnings when compiling for modern versions of Rust.
# use atomic_enum::atomic_enum;
# use std::sync::atomic::Ordering;
#[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.
Rust 2021 Edition (1.56)