atomic_macro 0.1.0

Attribute macros for generating AtomicXXX
Documentation

atomic_macro

Usage

#[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 {
        ...
    }
}

Generates

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