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§

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);

Implementations on Foreign Types§

Implementors§

impl<Frac> CheckedShr for FixedI8<Frac>

impl<Frac> CheckedShr for FixedI16<Frac>

impl<Frac> CheckedShr for FixedI32<Frac>

impl<Frac> CheckedShr for FixedI64<Frac>

impl<Frac> CheckedShr for FixedI128<Frac>

impl<Frac> CheckedShr for FixedU8<Frac>

impl<Frac> CheckedShr for FixedU16<Frac>

impl<Frac> CheckedShr for FixedU32<Frac>

impl<Frac> CheckedShr for FixedU64<Frac>

impl<Frac> CheckedShr for FixedU128<Frac>