1 2 3 4 5 6 7 8 9 10
pub trait Pointer { unsafe fn distance(self, origin: Self) -> usize; } impl<T> Pointer for *const T { #[inline(always)] unsafe fn distance(self, origin: *const T) -> usize { usize::try_from(self.offset_from(origin)).unwrap_unchecked() } }