Skip to content

Commit 5ca6993

Browse files
committed
Simplify Div impl for Saturating by using saturating_div
1 parent a0e61e2 commit 5ca6993

File tree

1 file changed

+31
-37
lines changed

1 file changed

+31
-37
lines changed

library/core/src/num/saturating.rs

Lines changed: 31 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,37 @@ macro_rules! saturating_impl {
266266
}
267267
forward_ref_op_assign! { impl MulAssign, mul_assign for Saturating<$t>, Saturating<$t> }
268268

269+
/// # Examples
270+
///
271+
/// Basic usage:
272+
///
273+
/// ```
274+
/// #![feature(saturating_int_impl, saturating_div)]
275+
/// use std::num::Saturating;
276+
///
277+
#[doc = concat!("assert_eq!(Saturating(2", stringify!($t), "), Saturating(5", stringify!($t), ") / Saturating(2));")]
278+
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MAX) / Saturating(1));")]
279+
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN), Saturating(", stringify!($t), "::MIN) / Saturating(1));")]
280+
/// ```
281+
///
282+
/// ```should_panic
283+
/// #![feature(saturating_int_impl, saturating_div)]
284+
/// use std::num::Saturating;
285+
///
286+
#[doc = concat!("let _ = Saturating(0", stringify!($t), ") / Saturating(0);")]
287+
/// ```
288+
#[unstable(feature = "saturating_int_impl", issue = "87920")]
289+
impl Div for Saturating<$t> {
290+
type Output = Saturating<$t>;
291+
292+
#[inline]
293+
fn div(self, other: Saturating<$t>) -> Saturating<$t> {
294+
Saturating(self.0.saturating_div(other.0))
295+
}
296+
}
297+
forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
298+
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
299+
269300
#[unstable(feature = "saturating_int_impl", issue = "87920")]
270301
impl DivAssign for Saturating<$t> {
271302
#[inline]
@@ -851,31 +882,6 @@ macro_rules! saturating_int_impl_signed {
851882
}
852883
forward_ref_unop! { impl Neg, neg for Saturating<$t>,
853884
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
854-
855-
/// # Examples
856-
///
857-
/// Basic usage:
858-
///
859-
/// ```
860-
/// #![feature(saturating_int_impl)]
861-
/// use std::num::Saturating;
862-
///
863-
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN + 1), Saturating(", stringify!($t), "::MAX) / Saturating(-1));")]
864-
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MIN) / Saturating(-1));")]
865-
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MAX) / Saturating(1));")]
866-
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN), Saturating(", stringify!($t), "::MIN) / Saturating(1));")]
867-
/// ```
868-
#[unstable(feature = "saturating_int_impl", issue = "87920")]
869-
impl Div for Saturating<$t> {
870-
type Output = Saturating<$t>;
871-
872-
#[inline]
873-
fn div(self, other: Saturating<$t>) -> Saturating<$t> {
874-
Saturating(self.0.saturating_div(other.0))
875-
}
876-
}
877-
forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
878-
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
879885
)*)
880886
}
881887

@@ -924,18 +930,6 @@ macro_rules! saturating_int_impl_unsigned {
924930
}
925931

926932
}
927-
928-
#[unstable(feature = "saturating_int_impl", issue = "87920")]
929-
impl Div for Saturating<$t> {
930-
type Output = Saturating<$t>;
931-
932-
#[inline]
933-
fn div(self, other: Saturating<$t>) -> Saturating<$t> {
934-
Saturating(self.0.div(other.0))
935-
}
936-
}
937-
forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
938-
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
939933
)*)
940934
}
941935

0 commit comments

Comments
 (0)