Trait argmin::prelude::CheckedRem[][src]

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

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

Implementations on Foreign Types

impl CheckedRem for i128[src]

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

impl CheckedRem for i64[src]

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

impl CheckedRem for u8[src]

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

impl CheckedRem for isize[src]

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

impl CheckedRem for i32[src]

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

impl CheckedRem for i16[src]

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

impl CheckedRem for u64[src]

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

impl CheckedRem for u16[src]

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

impl CheckedRem for u128[src]

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

impl CheckedRem for u32[src]

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

impl CheckedRem for usize[src]

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

impl CheckedRem for i8[src]

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

Implementors