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

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

Required Methods§

source

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

Checked shift left. Computes self << rhs, returning None if rhs is larger than or equal to the number of bits in self.

use num_traits::CheckedShl;

let x: u16 = 0x0001;

assert_eq!(CheckedShl::checked_shl(&x, 0),  Some(0x0001));
assert_eq!(CheckedShl::checked_shl(&x, 1),  Some(0x0002));
assert_eq!(CheckedShl::checked_shl(&x, 15), Some(0x8000));
assert_eq!(CheckedShl::checked_shl(&x, 16), None);

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl CheckedShl for i8

source§

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

source§

impl CheckedShl for i16

source§

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

source§

impl CheckedShl for i32

source§

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

source§

impl CheckedShl for i64

source§

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

source§

impl CheckedShl for i128

source§

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

source§

impl CheckedShl for isize

source§

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

source§

impl CheckedShl for u8

source§

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

source§

impl CheckedShl for u16

source§

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

source§

impl CheckedShl for u32

source§

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

source§

impl CheckedShl for u64

source§

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

source§

impl CheckedShl for u128

source§

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

source§

impl CheckedShl for usize

source§

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

Implementors§