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 write
- dstmust be properly aligned. This is an invariant of the- BitPtrtype 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);