Trait CheckedEuclid

trait CheckedEuclid: Euclid

Required Methods

fn checked_div_euclid(self: &Self, v: &Self) -> Option<Self>

Performs euclid division that returns None instead of panicking on division by zero and instead of wrapping around on underflow and overflow.

fn checked_rem_euclid(self: &Self, v: &Self) -> Option<Self>

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

Provided Methods

fn checked_div_rem_euclid(self: &Self, v: &Self) -> Option<(Self, Self)>

Returns both the quotient and remainder from checked Euclidean division.

By default, it internally calls both CheckedEuclid::checked_div_euclid and CheckedEuclid::checked_rem_euclid, but it can be overridden in order to implement some optimization.

Examples

# use num_traits::CheckedEuclid;
let x = 5u8;
let y = 3u8;

let div = CheckedEuclid::checked_div_euclid(&x, &y);
let rem = CheckedEuclid::checked_rem_euclid(&x, &y);

assert_eq!(Some((div.unwrap(), rem.unwrap())), CheckedEuclid::checked_div_rem_euclid(&x, &y));

Implementors