pub unsafe fn point_swap(p1: *mut Point, p2: *mut Point) -> Result<()>
This function is unsafe because it may dereference raw pointers.