#原子 #枚举

portable_atomic_enum_macros

创建一个围绕C风格枚举的便携式原子包装器的属性

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 #枚举

Download history 1176/week @ 2024-03-13 871/week @ 2024-03-20 421/week @ 2024-03-27 620/week @ 2024-04-03 685/week @ 2024-04-10 655/week @ 2024-04-17 607/week @ 2024-04-24 671/week @ 2024-05-01 670/week @ 2024-05-08 525/week @ 2024-05-15 1492/week @ 2024-05-22 1771/week @ 2024-05-29 1535/week @ 2024-06-05 1167/week @ 2024-06-12 1339/week @ 2024-06-19 1843/week @ 2024-06-26

6,120 每月下载量
用于 2 个crate(通过 portable_atomic_enum

MIT 许可证

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