atomic_enum 0.3.0

An attribute to create an atomic wrapper around a C-style enum
Documentation
[![cargo version](https://img.shields.io/crates/v/atomic_enum.svg)](https://crates.io/crates/atomic_enum) 
[![docs.rs version](https://img.shields.io/docsrs/atomic_enum)](https://docs.rs/atomic_enum/latest/atomic_enum/)
# atomic_enum


An attribute to create an atomic wrapper around a C-style enum.

Internally, the generated wrapper uses an `AtomicUsize` to store the value.
The atomic operations have the same semantics as the equivalent operations
of `AtomicUsize`.

# Example

```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);
```

This attribute does not use or generate any unsafe code.

The crate can be used in a `#[no_std]` environment.

# Maintenance Note

This crate is passively maintained.