#atomic #enums #2021

已删除 atomic_enum_2021

用于在C风格枚举周围创建原子包装器的一个属性,基于Rust 2021进行分支

0.1.0 2022年7月25日

#3 in #2021

MIT 许可证

19KB
256

cargo version docs.rs version

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