diff options
| -rw-r--r-- | library/core/src/num/saturating.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/library/core/src/num/saturating.rs b/library/core/src/num/saturating.rs index 9f4d7104fa5..b0a172c72d0 100644 --- a/library/core/src/num/saturating.rs +++ b/library/core/src/num/saturating.rs @@ -3,7 +3,7 @@ use crate::fmt; use crate::ops::{Add, AddAssign, BitAnd, BitAndAssign, BitOr, BitOrAssign}; use crate::ops::{BitXor, BitXorAssign, Div, DivAssign}; -use crate::ops::{Mul, MulAssign, Neg, Not}; +use crate::ops::{Mul, MulAssign, Neg, Not, Rem, RemAssign}; use crate::ops::{Shl, ShlAssign, Shr, ShrAssign, Sub, SubAssign}; /// Provides intentionally-wrapped arithmetic on `T`. @@ -289,6 +289,27 @@ macro_rules! saturating_impl { forward_ref_op_assign! { impl DivAssign, div_assign for Saturating<$t>, Saturating<$t> } #[unstable(feature = "saturating_int_impl", issue = "87920")] + impl Rem for Saturating<$t> { + type Output = Saturating<$t>; + + #[inline] + fn rem(self, other: Saturating<$t>) -> Saturating<$t> { + Saturating(self.0.rem(other.0)) + } + } + forward_ref_binop! { impl Rem, rem for Saturating<$t>, Saturating<$t>, + #[unstable(feature = "saturating_int_impl", issue = "87920")] } + + #[unstable(feature = "saturating_int_impl", issue = "87920")] + impl RemAssign for Saturating<$t> { + #[inline] + fn rem_assign(&mut self, other: Saturating<$t>) { + *self = *self % other; + } + } + forward_ref_op_assign! { impl RemAssign, rem_assign for Saturating<$t>, Saturating<$t> } + + #[unstable(feature = "saturating_int_impl", issue = "87920")] impl Not for Saturating<$t> { type Output = Saturating<$t>; |
