use super::{
atomic_bool,
atomic_f32,
atomic_f64,
atomic_ops::AtomicOps,
sealed,
};
#[doc(hidden)]
pub trait AtomicValue: sealed::Sealed + Copy {
type Primitive: AtomicOps<Value = Self>;
type Inner;
fn new_primitive(value: Self) -> Self::Primitive;
fn inner(primitive: &Self::Primitive) -> &Self::Inner;
}
impl_atomic_value!(bool, atomic_bool::AtomicBool, std::sync::atomic::AtomicBool);
impl_atomic_value!(f32, atomic_f32::AtomicF32, std::sync::atomic::AtomicU32);
impl_atomic_value!(f64, atomic_f64::AtomicF64, std::sync::atomic::AtomicU64);