Function write
pub unsafe fn write<T, O>(dst: BitPtr<Mut, T, O>, value: bool)Expand description
§Single-Bit Write
This writes a bit into dst directly.
§Original
§Safety
Because this performs a dereference of memory, it inherits the original
ptr::write’s requirements:
dstmust be valid to writedstmust be properly aligned. This is an invariant of theBitPtrtype as well as of the memory access.
Additionally, dst must point to an initialized value of T. Integers cannot
be initialized one bit at a time.
§Behavior
This is required to perform a read/modify/write cycle on the memory location. LLVM may or may not emit a bit-write instruction on targets that have them in the ISA, but this is not specified in any way.
§Examples
use bitvec::prelude::*;
use bitvec::ptr as bv_ptr;
let mut data = 0u8;
let ptr = BitPtr::<_, _, Lsb0>::from_mut(&mut data);
unsafe { bv_ptr::write(ptr.add(2), true); }
assert_eq!(data, 4);