better_as/
pointer.rs

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