use std::fmt; use std::ops::{Deref, DerefMut}; /// `AtomicPtr` providing an additional `load_unsync` function. pub(crate) struct AtomicPtr { inner: std::sync::atomic::AtomicPtr, } impl AtomicPtr { pub(crate) fn new(ptr: *mut T) -> AtomicPtr { let inner = std::sync::atomic::AtomicPtr::new(ptr); AtomicPtr { inner } } } impl Deref for AtomicPtr { type Target = std::sync::atomic::AtomicPtr; fn deref(&self) -> &Self::Target { &self.inner } } impl DerefMut for AtomicPtr { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.inner } } impl fmt::Debug for AtomicPtr { fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { self.deref().fmt(fmt) } }