Function morton_encoding::shrink_custom_checked [−][src]
pub fn shrink_custom_checked<Coor, Key>(
x: Key,
siz_rat: NonZeroUsize
) -> Option<Coor> where
Coor: ToPrimitive + PrimInt,
Key: ValidKey<Coor>,
Fallibly “shrinks” a given number, only keeping a certain amount of its bits.
The 0th bit is always kept, and so is every siz_rat
th bit thereafter. All
other bits are lost. Alternatively, if the provided Key
type is too small
to fit siz_rat
Coor
numbers inside it, a None
is returned .
This function is usable when the size ratio is computed at run-time, but bear in mind that it might run much more slowly than its compile-time counterparts.
This function sanitises its input, so the bits that are thrown away do not need to be cleared by the user.
Examples
assert_eq!(shrink_custom_checked::<u16, u32>(0xFFFF_FFFF, nz(2)), Some(0xFFFF)); assert_eq!(shrink_custom_checked::<u16, u32>(0x185185, nz(3)), None);