# 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