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

    pub trait CheckedRem: Sized + Rem<Self, Output = Self> {
        fn checked_rem(&self, v: &Self) -> Option<Self>;
    }

Performs an integral remainder that returns `None` instead of panicking on division by zero and instead of wrapping around on underflow and overflow.

## Required methods

### `fn checked_rem(&self, v: &Self) -> Option<Self>` [src]

Finds the remainder of dividing two numbers, checking for underflow, overflow and division by zero. If any of that happens, `None` is returned.

# Examples

    use num_traits::CheckedRem;
    use std::i32::MIN;

    assert_eq!(CheckedRem::checked_rem(&10, &7), Some(3));
    assert_eq!(CheckedRem::checked_rem(&10, &-7), Some(3));
    assert_eq!(CheckedRem::checked_rem(&-10, &7), Some(-3));
    assert_eq!(CheckedRem::checked_rem(&-10, &-7), Some(-3));

    assert_eq!(CheckedRem::checked_rem(&10, &0), None);

    assert_eq!(CheckedRem::checked_rem(&MIN, &1), Some(0));
    assert_eq!(CheckedRem::checked_rem(&MIN, &-1), None);

Loading content...

## Implementors

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

#### `fn checked_rem(&self, v: &i8) -> Option<i8>` [src]

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

#### `fn checked_rem(&self, v: &i16) -> Option<i16>` [src]

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

#### `fn checked_rem(&self, v: &i32) -> Option<i32>` [src]

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

#### `fn checked_rem(&self, v: &i64) -> Option<i64>` [src]

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

#### `fn checked_rem(&self, v: &i128) -> Option<i128>` [src]

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

#### `fn checked_rem(&self, v: &isize) -> Option<isize>` [src]

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

#### `fn checked_rem(&self, v: &u8) -> Option<u8>` [src]

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

#### `fn checked_rem(&self, v: &u16) -> Option<u16>` [src]

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

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

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

#### `fn checked_rem(&self, v: &u64) -> Option<u64>` [src]

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

#### `fn checked_rem(&self, v: &u128) -> Option<u128>` [src]

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

#### `fn checked_rem(&self, v: &usize) -> Option<usize>` [src]

Loading content...