0.1.0 |
|
---|
#3 in #2021
19KB
256 行
atomic_enum_2021
用于在C风格枚举周围创建原子包装器的一个属性。
内部,生成的包装器使用 AtomicUsize
来存储值。原子操作与 AtomicUsize
的等效操作具有相同的语义。
由 l1npengtul
分支并维护,以消除为现代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);
此属性不使用或生成任何不安全代码。
MSRV
Rust 2021版(1.56)
依赖项
~1.5MB
~35K SLoC