5 个版本
0.2.1 | 2024年3月3日 |
---|---|
0.2.0 | 2023年11月14日 |
0.1.2 | 2023年10月18日 |
0.1.1 | 2023年10月18日 |
0.1.0 | 2023年10月18日 |
#99 in #枚举
6,120 每月下载量
用于 2 个crate(通过 portable_atomic_enum)
16KB
248 代码行
创建一个围绕C风格枚举的原子包装器的属性。
内部,生成的包装器使用 AtomicUsize
来存储值。原子操作具有与 AtomicUsize
相同的语义。
示例
#[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);
此属性不使用或生成任何不安全代码。
此crate可以在 #[no_std]
环境中使用。
依赖关系
~270–720KB
~17K SLoC