1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
pub fn to_address<T: ?Sized>(ptr: *const T) -> usize {
    ptr as *const () as usize
}

pub fn to_address_mut<T: ?Sized>(ptr: *mut T) -> usize {
    ptr as *mut () as usize
}

pub const fn cast<T: ?Sized, U>(ptr: *const T) -> *const U {
    ptr.cast()
}

pub const fn cast_mut<T: ?Sized, U>(ptr: *mut T) -> *mut U {
    ptr.cast()
}