fn pack_coords(coords: Vector3<i32>) -> u64 {
    assert!(coords.x.abs() < (1 << 23) - 1);
    assert!(coords.y.abs() < (1 << 23) - 1);
    assert!(coords.z.abs() < (1 << 15) - 1);

    let x = coords.x.to_le_bytes();
    let y = coords.y.to_le_bytes();
    let z = coords.z.to_le_bytes();
    u64::from_le_bytes([x[0], x[1], x[2], y[0], y[1], y[2], z[0], z[1]])
}
// Pack three i32 coordinates into 3 bytes, 3 bytes, and 2 bytes.
Pack three i32 coordinates into 3 bytes, 3 bytes, and 2 bytes.
Pack three i32 coordinates into 3 bytes 3 bytes and 2 bytes .
fn pack_coords(coords: Vector3<i32>) -> u64 {
    assert!(coords.x.abs() < (1 << 23) - 1);
    assert!(coords.y.abs() < (1 << 23) - 1);
    assert!(coords.z.abs() < (1 << 15) - 1);
    let x = coords.x.to_le_bytes();
    let y = coords.y.to_le_bytes();
    let z = coords.z.to_le_bytes();
    u64::from_le_bytes([x[0], x[1], x[2], y[0], y[1], y[2], z[0], z[1]])
}
fn pack_coords ( coords : Vector3 < i32 > ) -> u64 { assert ! ( coords x abs ( ) ( 1 23 ) 1 ) ; assert ! ( coords y abs ( ) ( 1 23 ) 1 ) ; assert ! ( coords z abs ( ) ( 1 15 ) 1 ) ; let x = coords . x . to_le_bytes ( ) ; let y = coords . y . to_le_bytes ( ) ; let z = coords . z . to_le_bytes ( ) ; u64 :: from_le_bytes ( [ x [ 0 ] , x [ 1 ] , x [ 2 ] , y [ 0 ] , y [ 1 ] , y [ 2 ] , z [ 0 ] , z [ 1 ] ] ) }
Pack three i32 coordinates into 3 bytes, 3 bytes, and 2 bytes.
Pack three i32 coordinates into 3 bytes 3 bytes and 2 bytes .
coords
Vector3<i32>
coords
Vector3<i32>