potential-well 2.0.0

Atomic boxes.
Documentation
//! Atomic boxes.
//!
//! You can use [`Atomic`] and [`AtomicOption`] to access owned pointers to values atomically,
//! and determine whether smart pointers have to be stored in the atomic.
//!
//! You can also implement your own smart pointer types using the [`Well`] trait.
#![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;

pub use crate::{
    atomic::{Atomic, AtomicOption, PotentialAtomic, PotentialAtomicOption},
    traits::{
        AtomicArc, AtomicBox, AtomicOptionArc, AtomicOptionBox, AtomicOptionPinArc,
        AtomicOptionPinBox, AtomicOptionPinRc, AtomicOptionRc, AtomicPinArc, AtomicPinBox,
        AtomicPinRc, AtomicRc, Bucket, KineticWell, PotentialWell, StrongWell, StrongWellMut,
        WeakWell, Well,
    },
};