#![cfg_attr(not(any(feature = "std", test, doc)), no_std)]
#![cfg_attr(
any(coverage_nightly, feature = "nightly"),
feature(coverage_attribute)
)]
#![cfg_attr(doc, feature(doc_cfg))]
#![cfg_attr(doc, doc(auto_cfg))]
#![cfg_attr(feature = "nightly", feature(trait_alias))]
#[cfg(any(doc, test, feature = "alloc"))]
extern crate alloc;
mod atomic;
mod inner;
#[cfg(test)]
mod tests;
mod traits;
#[cfg(feature = "alloc")]
pub use crate::traits::{
AtomicArc, AtomicBox, AtomicOptionArc, AtomicOptionBox, AtomicOptionPinArc, AtomicOptionPinBox,
AtomicOptionPinRc, AtomicOptionRc, AtomicPinArc, AtomicPinBox, AtomicPinRc, AtomicRc,
};
pub use crate::{
atomic::{Atomic, AtomicOption, PotentialAtomic, PotentialAtomicOption},
traits::{
KineticWell, PotentialWell, StrongPotentialWell, StrongWell, StrongWellMut, Target,
WeakPotentialWell, WeakWell, Well,
},
};