#atomic #macro #generate #attributes #atomic-xxx

atomic_macro

用于生成 AtomicXXX 的属性宏

2 个版本

0.1.1 2022年1月19日
0.1.0 2022年1月19日

#250 in #atomic

自定义许可

7KB
83

atomic_macro

用法

#[atomic_macro::atomic(32)]
struct SomeStruct {
    field_one: u8,
    field_two: u16,
}
impl From<u32> for SomeStruct {
    fn from(value: u32) -> Self {
        ...
    }
}
impl From<SomeStruct> for u32 {
    fn from(value: SomeStruct) -> Self {
        ...
    }
}

生成

enum AtomicSomeStruct(AtomicU32);
impl AtomicSomeStruct {
    fn load(&self, order: Ordering) -> SomeStruct;
    fn store(&self, val: SomeStruct, order: Ordering);
    ...
}

依赖项

~1.5MB
~35K SLoC