Skip to content

Latest commit

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

cargo versiondocs.rs version

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

# use atomic_enum::atomic_enum;
# use std::sync::atomic::Ordering;#[atomic_enum]#[derive(PartialEq)]enumCatState{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.

About

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

Resources

Stars

51 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages