# Bit Swap This exchanges the bit-values in two locations. It is semantically and behaviorally equivalent to [`BitRef::swap`][0], except that it works on bit-pointer structures rather than proxy references. Prefer to use a proxy reference or [`BitSlice::swap`][1] instead. ## Original [`ptr::swap`](core::ptr::swap) ## Safety This has the same safety requirements as [`ptr::read`][2] and [`ptr::write`][3], as it is required to use them in its implementation. ## Examples ```rust use bitvec::prelude::*; use bitvec::ptr as bv_ptr; let mut data = 2u8; let x = BitPtr::<_, _, Lsb0>::from_mut(&mut data); let y = unsafe { x.add(1) }; unsafe { bv_ptr::swap(x, y); } assert_eq!(data, 1); ``` [0]: crate::ptr::BitRef::swap [1]: crate::slice::BitSlice::swap [2]: crate::ptr::read [3]: crate::ptr::write