blob: 940f314b20b75fdd274a4dfb61ff80fc2631119c [file] [log] [blame] [view]
# One-Hot Bit Selection Mask
This type selects exactly one bit in a register. It is a [`BitPos`] shifted from
a counter to a selector, and is used to apply test and write operations to real
memory.
## Type Parameters
- `R`: The register element this selector governs.
## Validity
Values of this type are **required** to have exactly one bit set and all others
cleared. Any other value makes the program incorrect, and will cause memory
corruption.
## Construction
This type is only constructed from `BitPos`, and is always equivalent to
`1 << BitPos`.
The chain of custody from known-good [`BitIdx`] values, through proven-good
[`BitOrder`] implementations, into `BitPos` and then `BitSel` proves that values
of this type are always correct to apply to real memory.
[`BitIdx`]: crate::index::BitIdx
[`BitOrder`]: crate::order::BitOrder
[`BitPos`]: crate::index::BitPos