# Trait num_traits::ops::checked::CheckedShl [−] [src]

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

Performs a left shift that returns `None` on shifts larger than the type width.

## Required methods

### `fn checked_shl(&self, rhs: u32) -> Option<Self>` [src]

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

Loading content...

## Implementors

### `impl CheckedShl for i8` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<i8>` [src]

### `impl CheckedShl for i16` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<i16>` [src]

### `impl CheckedShl for i32` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<i32>` [src]

### `impl CheckedShl for i64` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<i64>` [src]

### `impl CheckedShl for i128` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<i128>` [src]

### `impl CheckedShl for isize` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<isize>` [src]

### `impl CheckedShl for u8` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<u8>` [src]

### `impl CheckedShl for u16` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<u16>` [src]

### `impl CheckedShl for u32` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<u32>` [src]

### `impl CheckedShl for u64` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<u64>` [src]

### `impl CheckedShl for u128` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<u128>` [src]

### `impl CheckedShl for usize` [src]

#### `fn checked_shl(&self, rhs: u32) -> Option<usize>` [src]

Loading content...