#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::ptr::NonNull; fn main() { let a = [0; 5]; let ptr1: NonNull = NonNull::from(&a[1]); let ptr2: NonNull = NonNull::from(&a[3]); unsafe { assert_eq!(ptr2.offset_from_unsigned(ptr1), 2); assert_eq!(ptr1.add(2), ptr2); assert_eq!(ptr2.sub(2), ptr1); assert_eq!(ptr2.offset_from_unsigned(ptr2), 0); } }