Trait rug::ops::RemRoundingAssign [−][src]
pub trait RemRoundingAssign<Rhs = Self> { fn rem_trunc_assign(&mut self, rhs: Rhs); fn rem_ceil_assign(&mut self, rhs: Rhs); fn rem_floor_assign(&mut self, rhs: Rhs); fn rem_euc_assign(&mut self, rhs: Rhs); }
Compound assignment and rounding variants of the remainder operation.
Examples
use rug::ops::RemRoundingAssign; struct I(i32); impl RemRoundingAssign<i32> for I { fn rem_trunc_assign(&mut self, rhs: i32) { self.0 %= rhs; } fn rem_ceil_assign(&mut self, rhs: i32) { let r = self.0 % rhs; let change = if rhs > 0 { r > 0 } else { r < 0 }; self.0 = if change { r - rhs } else { r }; } fn rem_floor_assign(&mut self, rhs: i32) { let r = self.0 % rhs; let change = if rhs > 0 { r < 0 } else { r > 0 }; self.0 = if change { r + rhs } else { r }; } fn rem_euc_assign(&mut self, rhs: i32) { let r = self.0 % rhs; self.0 = if r < 0 { if rhs < 0 { r - rhs } else { r + rhs } } else { r }; } } let mut rem_floor = I(-10); rem_floor.rem_floor_assign(3); assert_eq!(rem_floor.0, 2);
Required Methods
fn rem_trunc_assign(&mut self, rhs: Rhs)
Finds the remainder when the quotient is rounded towards zero.
fn rem_ceil_assign(&mut self, rhs: Rhs)
Finds the remainder when the quotient is rounded up.
fn rem_floor_assign(&mut self, rhs: Rhs)
Finds the remainder when the quotient is rounded down.
fn rem_euc_assign(&mut self, rhs: Rhs)
Finds the positive remainder from Euclidean division.
Implementations on Foreign Types
impl RemRoundingAssign for i8
[src]
impl RemRoundingAssign for i8
fn rem_trunc_assign(&mut self, rhs: i8)
[src]
fn rem_trunc_assign(&mut self, rhs: i8)
fn rem_ceil_assign(&mut self, rhs: i8)
[src]
fn rem_ceil_assign(&mut self, rhs: i8)
fn rem_floor_assign(&mut self, rhs: i8)
[src]
fn rem_floor_assign(&mut self, rhs: i8)
fn rem_euc_assign(&mut self, rhs: i8)
[src]
fn rem_euc_assign(&mut self, rhs: i8)
impl<'a> RemRoundingAssign<&'a i8> for i8
[src]
impl<'a> RemRoundingAssign<&'a i8> for i8
fn rem_trunc_assign(&mut self, rhs: &i8)
[src]
fn rem_trunc_assign(&mut self, rhs: &i8)
fn rem_ceil_assign(&mut self, rhs: &i8)
[src]
fn rem_ceil_assign(&mut self, rhs: &i8)
fn rem_floor_assign(&mut self, rhs: &i8)
[src]
fn rem_floor_assign(&mut self, rhs: &i8)
fn rem_euc_assign(&mut self, rhs: &i8)
[src]
fn rem_euc_assign(&mut self, rhs: &i8)
impl RemRoundingAssign for i16
[src]
impl RemRoundingAssign for i16
fn rem_trunc_assign(&mut self, rhs: i16)
[src]
fn rem_trunc_assign(&mut self, rhs: i16)
fn rem_ceil_assign(&mut self, rhs: i16)
[src]
fn rem_ceil_assign(&mut self, rhs: i16)
fn rem_floor_assign(&mut self, rhs: i16)
[src]
fn rem_floor_assign(&mut self, rhs: i16)
fn rem_euc_assign(&mut self, rhs: i16)
[src]
fn rem_euc_assign(&mut self, rhs: i16)
impl<'a> RemRoundingAssign<&'a i16> for i16
[src]
impl<'a> RemRoundingAssign<&'a i16> for i16
fn rem_trunc_assign(&mut self, rhs: &i16)
[src]
fn rem_trunc_assign(&mut self, rhs: &i16)
fn rem_ceil_assign(&mut self, rhs: &i16)
[src]
fn rem_ceil_assign(&mut self, rhs: &i16)
fn rem_floor_assign(&mut self, rhs: &i16)
[src]
fn rem_floor_assign(&mut self, rhs: &i16)
fn rem_euc_assign(&mut self, rhs: &i16)
[src]
fn rem_euc_assign(&mut self, rhs: &i16)
impl RemRoundingAssign for i32
[src]
impl RemRoundingAssign for i32
fn rem_trunc_assign(&mut self, rhs: i32)
[src]
fn rem_trunc_assign(&mut self, rhs: i32)
fn rem_ceil_assign(&mut self, rhs: i32)
[src]
fn rem_ceil_assign(&mut self, rhs: i32)
fn rem_floor_assign(&mut self, rhs: i32)
[src]
fn rem_floor_assign(&mut self, rhs: i32)
fn rem_euc_assign(&mut self, rhs: i32)
[src]
fn rem_euc_assign(&mut self, rhs: i32)
impl<'a> RemRoundingAssign<&'a i32> for i32
[src]
impl<'a> RemRoundingAssign<&'a i32> for i32
fn rem_trunc_assign(&mut self, rhs: &i32)
[src]
fn rem_trunc_assign(&mut self, rhs: &i32)
fn rem_ceil_assign(&mut self, rhs: &i32)
[src]
fn rem_ceil_assign(&mut self, rhs: &i32)
fn rem_floor_assign(&mut self, rhs: &i32)
[src]
fn rem_floor_assign(&mut self, rhs: &i32)
fn rem_euc_assign(&mut self, rhs: &i32)
[src]
fn rem_euc_assign(&mut self, rhs: &i32)
impl RemRoundingAssign for i64
[src]
impl RemRoundingAssign for i64
fn rem_trunc_assign(&mut self, rhs: i64)
[src]
fn rem_trunc_assign(&mut self, rhs: i64)
fn rem_ceil_assign(&mut self, rhs: i64)
[src]
fn rem_ceil_assign(&mut self, rhs: i64)
fn rem_floor_assign(&mut self, rhs: i64)
[src]
fn rem_floor_assign(&mut self, rhs: i64)
fn rem_euc_assign(&mut self, rhs: i64)
[src]
fn rem_euc_assign(&mut self, rhs: i64)
impl<'a> RemRoundingAssign<&'a i64> for i64
[src]
impl<'a> RemRoundingAssign<&'a i64> for i64
fn rem_trunc_assign(&mut self, rhs: &i64)
[src]
fn rem_trunc_assign(&mut self, rhs: &i64)
fn rem_ceil_assign(&mut self, rhs: &i64)
[src]
fn rem_ceil_assign(&mut self, rhs: &i64)
fn rem_floor_assign(&mut self, rhs: &i64)
[src]
fn rem_floor_assign(&mut self, rhs: &i64)
fn rem_euc_assign(&mut self, rhs: &i64)
[src]
fn rem_euc_assign(&mut self, rhs: &i64)
impl RemRoundingAssign for i128
[src]
impl RemRoundingAssign for i128
fn rem_trunc_assign(&mut self, rhs: i128)
[src]
fn rem_trunc_assign(&mut self, rhs: i128)
fn rem_ceil_assign(&mut self, rhs: i128)
[src]
fn rem_ceil_assign(&mut self, rhs: i128)
fn rem_floor_assign(&mut self, rhs: i128)
[src]
fn rem_floor_assign(&mut self, rhs: i128)
fn rem_euc_assign(&mut self, rhs: i128)
[src]
fn rem_euc_assign(&mut self, rhs: i128)
impl<'a> RemRoundingAssign<&'a i128> for i128
[src]
impl<'a> RemRoundingAssign<&'a i128> for i128
fn rem_trunc_assign(&mut self, rhs: &i128)
[src]
fn rem_trunc_assign(&mut self, rhs: &i128)
fn rem_ceil_assign(&mut self, rhs: &i128)
[src]
fn rem_ceil_assign(&mut self, rhs: &i128)
fn rem_floor_assign(&mut self, rhs: &i128)
[src]
fn rem_floor_assign(&mut self, rhs: &i128)
fn rem_euc_assign(&mut self, rhs: &i128)
[src]
fn rem_euc_assign(&mut self, rhs: &i128)
impl RemRoundingAssign for isize
[src]
impl RemRoundingAssign for isize
fn rem_trunc_assign(&mut self, rhs: isize)
[src]
fn rem_trunc_assign(&mut self, rhs: isize)
fn rem_ceil_assign(&mut self, rhs: isize)
[src]
fn rem_ceil_assign(&mut self, rhs: isize)
fn rem_floor_assign(&mut self, rhs: isize)
[src]
fn rem_floor_assign(&mut self, rhs: isize)
fn rem_euc_assign(&mut self, rhs: isize)
[src]
fn rem_euc_assign(&mut self, rhs: isize)
impl<'a> RemRoundingAssign<&'a isize> for isize
[src]
impl<'a> RemRoundingAssign<&'a isize> for isize
fn rem_trunc_assign(&mut self, rhs: &isize)
[src]
fn rem_trunc_assign(&mut self, rhs: &isize)
fn rem_ceil_assign(&mut self, rhs: &isize)
[src]
fn rem_ceil_assign(&mut self, rhs: &isize)
fn rem_floor_assign(&mut self, rhs: &isize)
[src]
fn rem_floor_assign(&mut self, rhs: &isize)
fn rem_euc_assign(&mut self, rhs: &isize)
[src]
fn rem_euc_assign(&mut self, rhs: &isize)
impl RemRoundingAssign for f32
[src]
impl RemRoundingAssign for f32
fn rem_trunc_assign(&mut self, rhs: f32)
[src]
fn rem_trunc_assign(&mut self, rhs: f32)
fn rem_ceil_assign(&mut self, rhs: f32)
[src]
fn rem_ceil_assign(&mut self, rhs: f32)
fn rem_floor_assign(&mut self, rhs: f32)
[src]
fn rem_floor_assign(&mut self, rhs: f32)
fn rem_euc_assign(&mut self, rhs: f32)
[src]
fn rem_euc_assign(&mut self, rhs: f32)
impl<'a> RemRoundingAssign<&'a f32> for f32
[src]
impl<'a> RemRoundingAssign<&'a f32> for f32
fn rem_trunc_assign(&mut self, rhs: &f32)
[src]
fn rem_trunc_assign(&mut self, rhs: &f32)
fn rem_ceil_assign(&mut self, rhs: &f32)
[src]
fn rem_ceil_assign(&mut self, rhs: &f32)
fn rem_floor_assign(&mut self, rhs: &f32)
[src]
fn rem_floor_assign(&mut self, rhs: &f32)
fn rem_euc_assign(&mut self, rhs: &f32)
[src]
fn rem_euc_assign(&mut self, rhs: &f32)
impl RemRoundingAssign for f64
[src]
impl RemRoundingAssign for f64
fn rem_trunc_assign(&mut self, rhs: f64)
[src]
fn rem_trunc_assign(&mut self, rhs: f64)
fn rem_ceil_assign(&mut self, rhs: f64)
[src]
fn rem_ceil_assign(&mut self, rhs: f64)
fn rem_floor_assign(&mut self, rhs: f64)
[src]
fn rem_floor_assign(&mut self, rhs: f64)
fn rem_euc_assign(&mut self, rhs: f64)
[src]
fn rem_euc_assign(&mut self, rhs: f64)
impl<'a> RemRoundingAssign<&'a f64> for f64
[src]
impl<'a> RemRoundingAssign<&'a f64> for f64
fn rem_trunc_assign(&mut self, rhs: &f64)
[src]
fn rem_trunc_assign(&mut self, rhs: &f64)
fn rem_ceil_assign(&mut self, rhs: &f64)
[src]
fn rem_ceil_assign(&mut self, rhs: &f64)
fn rem_floor_assign(&mut self, rhs: &f64)
[src]
fn rem_floor_assign(&mut self, rhs: &f64)
fn rem_euc_assign(&mut self, rhs: &f64)
[src]
fn rem_euc_assign(&mut self, rhs: &f64)