Skip to main content

CheckedRem

Trait CheckedRem 

Source
pub trait CheckedRem: Sized + Rem<Self> {
    // Required method
    fn checked_rem(self, v: Self) -> Option<<Self as Rem<Self>>::Output>;
}
Expand description

Performs integral remainder, returning None on division by zero or if overflow occurred.

Required Methods§

Source

fn checked_rem(self, v: Self) -> Option<<Self as Rem<Self>>::Output>

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

§Examples
use const_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);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl CheckedRem for i8

Source§

fn checked_rem(self, v: i8) -> Option<i8>

Source§

impl CheckedRem for i16

Source§

impl CheckedRem for i32

Source§

impl CheckedRem for i64

Source§

impl CheckedRem for i128

Source§

impl CheckedRem for isize

Source§

impl CheckedRem for u8

Source§

fn checked_rem(self, v: u8) -> Option<u8>

Source§

impl CheckedRem for u16

Source§

impl CheckedRem for u32

Source§

impl CheckedRem for u64

Source§

impl CheckedRem for u128

Source§

impl CheckedRem for usize

Implementors§