Rem

Trait Rem 

1.0.0 (const: unstable) · Source
pub trait Rem<Rhs = Self> {
    type Output;

    // Required method
    fn rem(self, rhs: Rhs) -> Self::Output;
}
Expand description

The remainder operator %.

Note that Rhs is Self by default, but this is not mandatory.

§Examples

This example implements Rem on a SplitSlice object. After Rem is implemented, one can use the % operator to find out what the remaining elements of the slice would be after splitting it into equal slices of a given length.

use std::ops::Rem;

#[derive(PartialEq, Debug)]
struct SplitSlice<'a, T> {
    slice: &'a [T],
}

impl<'a, T> Rem<usize> for SplitSlice<'a, T> {
    type Output = Self;

    fn rem(self, modulus: usize) -> Self::Output {
        let len = self.slice.len();
        let rem = len % modulus;
        let start = len - rem;
        Self {slice: &self.slice[start..]}
    }
}

// If we were to divide &[0, 1, 2, 3, 4, 5, 6, 7] into slices of size 3,
// the remainder would be &[6, 7].
assert_eq!(SplitSlice { slice: &[0, 1, 2, 3, 4, 5, 6, 7] } % 3,
           SplitSlice { slice: &[6, 7] });

Required Associated Types§

1.0.0 · Source

type Output

The resulting type after applying the % operator.

Required Methods§

1.0.0 · Source

fn rem(self, rhs: Rhs) -> Self::Output

Performs the % operation.

§Example
assert_eq!(12 % 10, 2);

Implementors§

1.0.0 (const: unstable) · Source§

impl Rem for f16

The remainder from the division of two floats.

The remainder has the same sign as the dividend and is computed as: x - (x / y).trunc() * y.

§Examples

let x: f32 = 50.50;
let y: f32 = 8.125;
let remainder = x - (x / y).trunc() * y;

// The answer to both operations is 1.75
assert_eq!(x % y, remainder);
1.0.0 (const: unstable) · Source§

impl Rem for f32

The remainder from the division of two floats.

The remainder has the same sign as the dividend and is computed as: x - (x / y).trunc() * y.

§Examples

let x: f32 = 50.50;
let y: f32 = 8.125;
let remainder = x - (x / y).trunc() * y;

// The answer to both operations is 1.75
assert_eq!(x % y, remainder);
1.0.0 (const: unstable) · Source§

impl Rem for f64

The remainder from the division of two floats.

The remainder has the same sign as the dividend and is computed as: x - (x / y).trunc() * y.

§Examples

let x: f32 = 50.50;
let y: f32 = 8.125;
let remainder = x - (x / y).trunc() * y;

// The answer to both operations is 1.75
assert_eq!(x % y, remainder);
1.0.0 (const: unstable) · Source§

impl Rem for f128

The remainder from the division of two floats.

The remainder has the same sign as the dividend and is computed as: x - (x / y).trunc() * y.

§Examples

let x: f32 = 50.50;
let y: f32 = 8.125;
let remainder = x - (x / y).trunc() * y;

// The answer to both operations is 1.75
assert_eq!(x % y, remainder);
1.0.0 (const: unstable) · Source§

impl Rem for i8

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0 or if self / other results in overflow.

1.0.0 (const: unstable) · Source§

impl Rem for i16

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0 or if self / other results in overflow.

1.0.0 (const: unstable) · Source§

impl Rem for i32

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0 or if self / other results in overflow.

1.0.0 (const: unstable) · Source§

impl Rem for i64

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0 or if self / other results in overflow.

1.0.0 (const: unstable) · Source§

impl Rem for i128

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0 or if self / other results in overflow.

1.0.0 (const: unstable) · Source§

impl Rem for isize

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0 or if self / other results in overflow.

1.0.0 (const: unstable) · Source§

impl Rem for u8

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0.

1.0.0 (const: unstable) · Source§

impl Rem for u16

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0.

1.0.0 (const: unstable) · Source§

impl Rem for u32

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0.

1.0.0 (const: unstable) · Source§

impl Rem for u64

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0.

1.0.0 (const: unstable) · Source§

impl Rem for u128

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0.

1.0.0 (const: unstable) · Source§

impl Rem for usize

This operation satisfies n % d == n - (n / d) * d. The result has the same sign as the left operand.

§Panics

This operation will panic if other == 0.

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Rem for Saturating<usize>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<i8>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<i16>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<i32>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<i64>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<i128>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<isize>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<u8>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<u16>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<u32>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<u64>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<u128>

1.7.0 (const: unstable) · Source§

impl Rem for Wrapping<usize>

Source§

impl Rem for U24

Source§

impl Rem for U40

Source§

impl Rem for U48

Source§

impl Rem for U56

Source§

impl Rem for U72

Source§

impl Rem for U80

Source§

impl Rem for U88

Source§

impl Rem for U96

Source§

impl Rem for U104

Source§

impl Rem for U112

Source§

impl Rem for U120

Source§

impl Rem for U136

Source§

impl Rem for U144

Source§

impl Rem for U152

Source§

impl Rem for U160

Source§

impl Rem for U168

Source§

impl Rem for U176

Source§

impl Rem for U184

Source§

impl Rem for U192

Source§

impl Rem for U200

Source§

impl Rem for U208

Source§

impl Rem for U216

Source§

impl Rem for U224

Source§

impl Rem for U232

Source§

impl Rem for U240

Source§

impl Rem for U248

Source§

impl Rem for U256

1.0.0 (const: unstable) · Source§

impl Rem<&f16> for &f16

1.0.0 (const: unstable) · Source§

impl Rem<&f16> for f16

1.0.0 (const: unstable) · Source§

impl Rem<&f32> for &f32

1.0.0 (const: unstable) · Source§

impl Rem<&f32> for f32

1.0.0 (const: unstable) · Source§

impl Rem<&f64> for &f64

1.0.0 (const: unstable) · Source§

impl Rem<&f64> for f64

1.0.0 (const: unstable) · Source§

impl Rem<&f128> for &f128

1.0.0 (const: unstable) · Source§

impl Rem<&f128> for f128

1.0.0 (const: unstable) · Source§

impl Rem<&i8> for &i8

1.0.0 (const: unstable) · Source§

impl Rem<&i8> for i8

1.0.0 (const: unstable) · Source§

impl Rem<&i16> for &i16

1.0.0 (const: unstable) · Source§

impl Rem<&i16> for i16

1.0.0 (const: unstable) · Source§

impl Rem<&i32> for &i32

1.0.0 (const: unstable) · Source§

impl Rem<&i32> for i32

1.0.0 (const: unstable) · Source§

impl Rem<&i64> for &i64

1.0.0 (const: unstable) · Source§

impl Rem<&i64> for i64

1.0.0 (const: unstable) · Source§

impl Rem<&i128> for &i128

1.0.0 (const: unstable) · Source§

impl Rem<&i128> for i128

1.0.0 (const: unstable) · Source§

impl Rem<&isize> for &isize

1.0.0 (const: unstable) · Source§

impl Rem<&isize> for isize

1.0.0 (const: unstable) · Source§

impl Rem<&u8> for &u8

1.0.0 (const: unstable) · Source§

impl Rem<&u8> for u8

1.0.0 (const: unstable) · Source§

impl Rem<&u16> for &u16

1.0.0 (const: unstable) · Source§

impl Rem<&u16> for u16

1.0.0 (const: unstable) · Source§

impl Rem<&u32> for &u32

1.0.0 (const: unstable) · Source§

impl Rem<&u32> for u32

1.0.0 (const: unstable) · Source§

impl Rem<&u64> for &u64

1.0.0 (const: unstable) · Source§

impl Rem<&u64> for u64

1.0.0 (const: unstable) · Source§

impl Rem<&u128> for &u128

1.0.0 (const: unstable) · Source§

impl Rem<&u128> for u128

1.0.0 (const: unstable) · Source§

impl Rem<&usize> for &usize

1.0.0 (const: unstable) · Source§

impl Rem<&usize> for usize

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i8>> for &Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i8>> for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i16>> for &Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i16>> for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i32>> for &Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i32>> for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i64>> for &Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i64>> for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i128>> for &Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<i128>> for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<isize>> for &Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<isize>> for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u8>> for &Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u8>> for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u16>> for &Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u16>> for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u32>> for &Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u32>> for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u64>> for &Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u64>> for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u128>> for &Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<u128>> for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<usize>> for &Saturating<usize>

1.74.0 (const: unstable) · Source§

impl Rem<&Saturating<usize>> for Saturating<usize>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i8>> for &Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i8>> for Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i16>> for Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i32>> for Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i64>> for Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<i128>> for Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<isize>> for Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u8>> for &Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u8>> for Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u16>> for Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u32>> for Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u64>> for Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<u128>> for Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 (const: unstable) · Source§

impl Rem<&Wrapping<usize>> for Wrapping<usize>

1.0.0 (const: unstable) · Source§

impl Rem<f16> for &f16

1.0.0 (const: unstable) · Source§

impl Rem<f32> for &f32

1.0.0 (const: unstable) · Source§

impl Rem<f64> for &f64

1.0.0 (const: unstable) · Source§

impl Rem<f128> for &f128

1.0.0 (const: unstable) · Source§

impl Rem<i8> for &i8

1.0.0 (const: unstable) · Source§

impl Rem<i16> for &i16

1.0.0 (const: unstable) · Source§

impl Rem<i32> for &i32

1.0.0 (const: unstable) · Source§

impl Rem<i64> for &i64

1.0.0 (const: unstable) · Source§

impl Rem<i128> for &i128

1.0.0 (const: unstable) · Source§

impl Rem<isize> for &isize

1.0.0 (const: unstable) · Source§

impl Rem<u8> for &u8

1.0.0 (const: unstable) · Source§

impl Rem<u16> for &u16

1.0.0 (const: unstable) · Source§

impl Rem<u32> for &u32

1.0.0 (const: unstable) · Source§

impl Rem<u64> for &u64

1.0.0 (const: unstable) · Source§

impl Rem<u128> for &u128

1.0.0 (const: unstable) · Source§

impl Rem<usize> for &usize

1.51.0 (const: unstable) · Source§

impl Rem<NonZero<u8>> for u8

1.51.0 (const: unstable) · Source§

impl Rem<NonZero<u16>> for u16

1.51.0 (const: unstable) · Source§

impl Rem<NonZero<u32>> for u32

1.51.0 (const: unstable) · Source§

impl Rem<NonZero<u64>> for u64

1.51.0 (const: unstable) · Source§

impl Rem<NonZero<u128>> for u128

1.51.0 (const: unstable) · Source§

impl Rem<NonZero<usize>> for usize

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<i8>> for &Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<i16>> for &Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<i32>> for &Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<i64>> for &Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<i128>> for &Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<isize>> for &Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<u8>> for &Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<u16>> for &Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<u32>> for &Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<u64>> for &Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<u128>> for &Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Rem<Saturating<usize>> for &Saturating<usize>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<i8>> for &Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<i16>> for &Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<i32>> for &Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<i64>> for &Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<i128>> for &Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<isize>> for &Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<u8>> for &Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<u16>> for &Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<u32>> for &Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<u64>> for &Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<u128>> for &Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Rem<Wrapping<usize>> for &Wrapping<usize>

Source§

impl<'lhs, 'rhs, T, const N: usize> Rem<&'rhs Simd<T, N>> for &'lhs Simd<T, N>
where T: SimdElement, Simd<T, N>: Rem<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

Source§

type Output = Simd<T, N>

Source§

impl<T, const N: usize> Rem<&Simd<T, N>> for Simd<T, N>
where T: SimdElement, Simd<T, N>: Rem<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

Source§

type Output = Simd<T, N>

Source§

impl<T, const N: usize> Rem<Simd<T, N>> for &Simd<T, N>
where T: SimdElement, Simd<T, N>: Rem<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

Source§

type Output = Simd<T, N>

Source§

impl<const N: usize> Rem for Simd<f32, N>

Source§

impl<const N: usize> Rem for Simd<f64, N>

Source§

impl<const N: usize> Rem for Simd<i8, N>

Source§

impl<const N: usize> Rem for Simd<i16, N>

Source§

impl<const N: usize> Rem for Simd<i32, N>

Source§

impl<const N: usize> Rem for Simd<i64, N>

Source§

impl<const N: usize> Rem for Simd<isize, N>

Source§

impl<const N: usize> Rem for Simd<u8, N>

Source§

impl<const N: usize> Rem for Simd<u16, N>

Source§

impl<const N: usize> Rem for Simd<u32, N>

Source§

impl<const N: usize> Rem for Simd<u64, N>

Source§

impl<const N: usize> Rem for Simd<usize, N>