Trait datafusion::prelude::Rem
1.0.0 · 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§
Required Methods§
Implementors§
source§impl Rem for f32
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);
source§impl Rem for f64
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);
source§impl Rem for i8
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.
source§impl Rem for i16
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.
source§impl Rem for i32
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.
source§impl Rem for i64
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.
source§impl Rem for i128
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.
source§impl Rem for isize
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.
source§impl Rem for u8
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
.
source§impl Rem for u16
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
.
source§impl Rem for u32
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
.
source§impl Rem for u64
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
.
source§impl Rem for u128
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
.
source§impl Rem for usize
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 · source§impl Rem for Saturating<i8>
impl Rem for Saturating<i8>
type Output = Saturating<i8>
1.74.0 · source§impl Rem for Saturating<i16>
impl Rem for Saturating<i16>
type Output = Saturating<i16>
1.74.0 · source§impl Rem for Saturating<i32>
impl Rem for Saturating<i32>
type Output = Saturating<i32>
1.74.0 · source§impl Rem for Saturating<i64>
impl Rem for Saturating<i64>
type Output = Saturating<i64>
1.74.0 · source§impl Rem for Saturating<i128>
impl Rem for Saturating<i128>
type Output = Saturating<i128>
1.74.0 · source§impl Rem for Saturating<isize>
impl Rem for Saturating<isize>
type Output = Saturating<isize>
1.74.0 · source§impl Rem for Saturating<u8>
impl Rem for Saturating<u8>
type Output = Saturating<u8>
1.74.0 · source§impl Rem for Saturating<u16>
impl Rem for Saturating<u16>
type Output = Saturating<u16>
1.74.0 · source§impl Rem for Saturating<u32>
impl Rem for Saturating<u32>
type Output = Saturating<u32>
1.74.0 · source§impl Rem for Saturating<u64>
impl Rem for Saturating<u64>
type Output = Saturating<u64>
1.74.0 · source§impl Rem for Saturating<u128>
impl Rem for Saturating<u128>
type Output = Saturating<u128>
1.74.0 · source§impl Rem for Saturating<usize>
impl Rem for Saturating<usize>
type Output = Saturating<usize>
1.74.0 · source§impl Rem<&Saturating<i8>> for &Saturating<i8>
impl Rem<&Saturating<i8>> for &Saturating<i8>
1.74.0 · source§impl Rem<&Saturating<i8>> for Saturating<i8>
impl Rem<&Saturating<i8>> for Saturating<i8>
1.74.0 · source§impl Rem<&Saturating<i16>> for &Saturating<i16>
impl Rem<&Saturating<i16>> for &Saturating<i16>
1.74.0 · source§impl Rem<&Saturating<i16>> for Saturating<i16>
impl Rem<&Saturating<i16>> for Saturating<i16>
1.74.0 · source§impl Rem<&Saturating<i32>> for &Saturating<i32>
impl Rem<&Saturating<i32>> for &Saturating<i32>
1.74.0 · source§impl Rem<&Saturating<i32>> for Saturating<i32>
impl Rem<&Saturating<i32>> for Saturating<i32>
1.74.0 · source§impl Rem<&Saturating<i64>> for &Saturating<i64>
impl Rem<&Saturating<i64>> for &Saturating<i64>
1.74.0 · source§impl Rem<&Saturating<i64>> for Saturating<i64>
impl Rem<&Saturating<i64>> for Saturating<i64>
1.74.0 · source§impl Rem<&Saturating<i128>> for &Saturating<i128>
impl Rem<&Saturating<i128>> for &Saturating<i128>
1.74.0 · source§impl Rem<&Saturating<i128>> for Saturating<i128>
impl Rem<&Saturating<i128>> for Saturating<i128>
1.74.0 · source§impl Rem<&Saturating<isize>> for &Saturating<isize>
impl Rem<&Saturating<isize>> for &Saturating<isize>
1.74.0 · source§impl Rem<&Saturating<isize>> for Saturating<isize>
impl Rem<&Saturating<isize>> for Saturating<isize>
1.74.0 · source§impl Rem<&Saturating<u8>> for &Saturating<u8>
impl Rem<&Saturating<u8>> for &Saturating<u8>
1.74.0 · source§impl Rem<&Saturating<u8>> for Saturating<u8>
impl Rem<&Saturating<u8>> for Saturating<u8>
1.74.0 · source§impl Rem<&Saturating<u16>> for &Saturating<u16>
impl Rem<&Saturating<u16>> for &Saturating<u16>
1.74.0 · source§impl Rem<&Saturating<u16>> for Saturating<u16>
impl Rem<&Saturating<u16>> for Saturating<u16>
1.74.0 · source§impl Rem<&Saturating<u32>> for &Saturating<u32>
impl Rem<&Saturating<u32>> for &Saturating<u32>
1.74.0 · source§impl Rem<&Saturating<u32>> for Saturating<u32>
impl Rem<&Saturating<u32>> for Saturating<u32>
1.74.0 · source§impl Rem<&Saturating<u64>> for &Saturating<u64>
impl Rem<&Saturating<u64>> for &Saturating<u64>
1.74.0 · source§impl Rem<&Saturating<u64>> for Saturating<u64>
impl Rem<&Saturating<u64>> for Saturating<u64>
1.74.0 · source§impl Rem<&Saturating<u128>> for &Saturating<u128>
impl Rem<&Saturating<u128>> for &Saturating<u128>
1.74.0 · source§impl Rem<&Saturating<u128>> for Saturating<u128>
impl Rem<&Saturating<u128>> for Saturating<u128>
1.74.0 · source§impl Rem<&Saturating<usize>> for &Saturating<usize>
impl Rem<&Saturating<usize>> for &Saturating<usize>
1.74.0 · source§impl Rem<&Saturating<usize>> for Saturating<usize>
impl Rem<&Saturating<usize>> for Saturating<usize>
1.74.0 · source§impl<'a> Rem<Saturating<i8>> for &'a Saturating<i8>
impl<'a> Rem<Saturating<i8>> for &'a Saturating<i8>
1.74.0 · source§impl<'a> Rem<Saturating<i16>> for &'a Saturating<i16>
impl<'a> Rem<Saturating<i16>> for &'a Saturating<i16>
1.74.0 · source§impl<'a> Rem<Saturating<i32>> for &'a Saturating<i32>
impl<'a> Rem<Saturating<i32>> for &'a Saturating<i32>
1.74.0 · source§impl<'a> Rem<Saturating<i64>> for &'a Saturating<i64>
impl<'a> Rem<Saturating<i64>> for &'a Saturating<i64>
1.74.0 · source§impl<'a> Rem<Saturating<i128>> for &'a Saturating<i128>
impl<'a> Rem<Saturating<i128>> for &'a Saturating<i128>
1.74.0 · source§impl<'a> Rem<Saturating<isize>> for &'a Saturating<isize>
impl<'a> Rem<Saturating<isize>> for &'a Saturating<isize>
1.74.0 · source§impl<'a> Rem<Saturating<u8>> for &'a Saturating<u8>
impl<'a> Rem<Saturating<u8>> for &'a Saturating<u8>
1.74.0 · source§impl<'a> Rem<Saturating<u16>> for &'a Saturating<u16>
impl<'a> Rem<Saturating<u16>> for &'a Saturating<u16>
1.74.0 · source§impl<'a> Rem<Saturating<u32>> for &'a Saturating<u32>
impl<'a> Rem<Saturating<u32>> for &'a Saturating<u32>
1.74.0 · source§impl<'a> Rem<Saturating<u64>> for &'a Saturating<u64>
impl<'a> Rem<Saturating<u64>> for &'a Saturating<u64>
1.74.0 · source§impl<'a> Rem<Saturating<u128>> for &'a Saturating<u128>
impl<'a> Rem<Saturating<u128>> for &'a Saturating<u128>
1.74.0 · source§impl<'a> Rem<Saturating<usize>> for &'a Saturating<usize>
impl<'a> Rem<Saturating<usize>> for &'a Saturating<usize>
source§impl<'a, T> Rem for &'a OrderedFloat<T>
impl<'a, T> Rem for &'a OrderedFloat<T>
source§impl<'a, T> Rem<&'a OrderedFloat<T>> for OrderedFloat<T>
impl<'a, T> Rem<&'a OrderedFloat<T>> for OrderedFloat<T>
source§impl<'a, T> Rem<&'a T> for &'a OrderedFloat<T>
impl<'a, T> Rem<&'a T> for &'a OrderedFloat<T>
source§impl<'a, T> Rem<&'a T> for OrderedFloat<T>
impl<'a, T> Rem<&'a T> for OrderedFloat<T>
source§impl<'a, T> Rem<OrderedFloat<T>> for &'a OrderedFloat<T>
impl<'a, T> Rem<OrderedFloat<T>> for &'a OrderedFloat<T>
source§impl<'a, T> Rem<T> for &'a OrderedFloat<T>
impl<'a, T> Rem<T> for &'a OrderedFloat<T>
source§impl<T> Rem for OrderedFloat<T>where
T: Rem,
impl<T> Rem for OrderedFloat<T>where
T: Rem,
type Output = OrderedFloat<<T as Rem>::Output>
source§impl<T> Rem<T> for NotNan<T>where
T: Float,
impl<T> Rem<T> for NotNan<T>where
T: Float,
Calculates %
with a float directly.
Panics if the provided value is NaN or the computation results in NaN