Trait orml_traits::arithmetic::CheckedShr
source · pub trait CheckedShr: Sized + Shr<u32, Output = Self> {
fn checked_shr(&self, rhs: u32) -> Option<Self>;
}
Expand description
Performs a right shift that returns None
on shifts larger than
the type width.
Required Methods§
sourcefn checked_shr(&self, rhs: u32) -> Option<Self>
fn checked_shr(&self, rhs: u32) -> Option<Self>
Checked shift right. Computes self >> rhs
, returning None
if rhs
is larger than or equal to the number of bits in self
.
use num_traits::CheckedShr;
let x: u16 = 0x8000;
assert_eq!(CheckedShr::checked_shr(&x, 0), Some(0x8000));
assert_eq!(CheckedShr::checked_shr(&x, 1), Some(0x4000));
assert_eq!(CheckedShr::checked_shr(&x, 15), Some(0x0001));
assert_eq!(CheckedShr::checked_shr(&x, 16), None);