#[cfg(feature = "portable-atomic")]
pub(crate) use portable_atomic::Ordering;
#[cfg(not(feature = "portable-atomic"))]
pub(crate) use core::sync::atomic::Ordering;
#[cfg(feature = "portable-atomic")]
pub(crate) use portable_atomic::AtomicBool;
#[cfg(not(feature = "portable-atomic"))]
pub(crate) use core::sync::atomic::AtomicBool;
#[cfg(feature = "portable-atomic")]
pub(crate) use portable_atomic::AtomicUsize;
#[cfg(not(feature = "portable-atomic"))]
pub(crate) use core::sync::atomic::AtomicUsize;
#[cfg(all(feature = "atomic-u64", feature = "portable-atomic"))]
pub(crate) type AtomicId = portable_atomic::AtomicU64;
#[cfg(all(feature = "atomic-u64", feature = "portable-atomic"))]
pub(crate) type IdInner = u64;
#[cfg(all(feature = "atomic-u64", not(feature = "portable-atomic")))]
pub(crate) type AtomicId = core::sync::atomic::AtomicU64;
#[cfg(all(feature = "atomic-u64", not(feature = "portable-atomic")))]
pub(crate) type IdInner = u64;
#[cfg(all(not(feature = "atomic-u64"), feature = "portable-atomic"))]
pub(crate) type AtomicId = portable_atomic::AtomicU32;
#[cfg(all(not(feature = "atomic-u64"), feature = "portable-atomic"))]
pub(crate) type IdInner = u32;
#[cfg(not(any(feature = "atomic-u64", feature = "portable-atomic")))]
pub(crate) type AtomicId = core::sync::atomic::AtomicU32;
#[cfg(not(any(feature = "atomic-u64", feature = "portable-atomic")))]
pub(crate) type IdInner = u32;