num::traits

Trait CheckedShr

Source
pub trait CheckedShr: Sized + Shr<u32, Output = Self> {
    // Required method
    fn checked_shr(&self, rhs: u32) -> Option<Self>;
}
Expand description

Performs a right shift that returns None on shifts larger than or equal to the type width.

Required Methods§

Source

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl CheckedShr for i8

Source§

fn checked_shr(&self, rhs: u32) -> Option<i8>

Source§

impl CheckedShr for i16

Source§

fn checked_shr(&self, rhs: u32) -> Option<i16>

Source§

impl CheckedShr for i32

Source§

fn checked_shr(&self, rhs: u32) -> Option<i32>

Source§

impl CheckedShr for i64

Source§

fn checked_shr(&self, rhs: u32) -> Option<i64>

Source§

impl CheckedShr for i128

Source§

fn checked_shr(&self, rhs: u32) -> Option<i128>

Source§

impl CheckedShr for isize

Source§

fn checked_shr(&self, rhs: u32) -> Option<isize>

Source§

impl CheckedShr for u8

Source§

fn checked_shr(&self, rhs: u32) -> Option<u8>

Source§

impl CheckedShr for u16

Source§

fn checked_shr(&self, rhs: u32) -> Option<u16>

Source§

impl CheckedShr for u32

Source§

fn checked_shr(&self, rhs: u32) -> Option<u32>

Source§

impl CheckedShr for u64

Source§

fn checked_shr(&self, rhs: u32) -> Option<u64>

Source§

impl CheckedShr for u128

Source§

fn checked_shr(&self, rhs: u32) -> Option<u128>

Source§

impl CheckedShr for usize

Source§

fn checked_shr(&self, rhs: u32) -> Option<usize>

Implementors§