# Single-Bit Replacement This writes a new value into a location, and returns the bit-value previously stored there. It is semantically and behaviorally equivalent to [`BitRef::replace`][0], except that it works on bit-pointer structures rather than proxy references. Prefer to use a proxy reference or [`BitSlice::replace`][1] instead. ## Original [`ptr::replace`](core::ptr::replace) ## 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 = 4u8; let ptr = BitPtr::<_, _, Lsb0>::from_mut(&mut data); assert!(unsafe { bv_ptr::replace(ptr.add(2), false) }); assert_eq!(data, 0); ``` [0]: crate::ptr::BitRef::replace [1]: crate::slice::BitSlice::replace [2]: crate::ptr::read [3]: crate::ptr::write