unsafe fn raw_ptr_add<T>(ptr: *mut T, offset: usize) -> *mut T {
    if mem::size_of::<T>() == 0 {
        // Special case for ZST
        (ptr as usize).wrapping_add(offset) as _
    } else {
        ptr.add(offset)
    }
}
/// Rawptr add but uses arithmetic distance for ZST
Rawptr add but uses arithmetic distance for ZST
Rawptr add but uses arithmetic distance for ZST
unsafe fn raw_ptr_add<T>(ptr: *mut T, offset: usize) -> *mut T {
    if mem::size_of::<T>() == 0 {
        // Special case for ZST
        (ptr as usize).wrapping_add(offset) as _
    } else {
        ptr.add(offset)
    }
}
unsafe fn raw_ptr_add < T > ( ptr : * mut T , offset : usize ) -> * mut T { if mem :: size_of :: < T > ( ) == 0 { // Special case for ZST ( ptr as usize ) . wrapping_add ( offset ) as _ } else { ptr . add ( offset ) } }
Rawptr add but uses arithmetic distance for ZST
Rawptr add but uses arithmetic distance for ZST
ptr
*mut T
offset
usize
ptr
*mut T
offset
usize