]> git.lizzy.rs Git - rust.git/commitdiff
Simplify Div impl for Saturating by using saturating_div
authorMichael Watzko <michael@watzko.de>
Thu, 19 Aug 2021 09:07:53 +0000 (11:07 +0200)
committerMichael Watzko <michael@watzko.de>
Thu, 19 Aug 2021 09:07:53 +0000 (11:07 +0200)
library/core/src/num/saturating.rs

index 4b346409ebf0ba9ab2553b92b7f2885340863c8c..2e84f0657131ddb8d77217c113ba89cbff5e1f32 100644 (file)
@@ -266,6 +266,37 @@ fn mul_assign(&mut self, other: Saturating<$t>) {
         }
         forward_ref_op_assign! { impl MulAssign, mul_assign for Saturating<$t>, Saturating<$t> }
 
+        /// # Examples
+        ///
+        /// Basic usage:
+        ///
+        /// ```
+        /// #![feature(saturating_int_impl, saturating_div)]
+        /// use std::num::Saturating;
+        ///
+        #[doc = concat!("assert_eq!(Saturating(2", stringify!($t), "), Saturating(5", stringify!($t), ") / Saturating(2));")]
+        #[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MAX) / Saturating(1));")]
+        #[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN), Saturating(", stringify!($t), "::MIN) / Saturating(1));")]
+        /// ```
+        ///
+        /// ```should_panic
+        /// #![feature(saturating_int_impl, saturating_div)]
+        /// use std::num::Saturating;
+        ///
+        #[doc = concat!("let _ = Saturating(0", stringify!($t), ") / Saturating(0);")]
+        /// ```
+        #[unstable(feature = "saturating_int_impl", issue = "87920")]
+        impl Div for Saturating<$t> {
+            type Output = Saturating<$t>;
+
+            #[inline]
+            fn div(self, other: Saturating<$t>) -> Saturating<$t> {
+                Saturating(self.0.saturating_div(other.0))
+            }
+        }
+        forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
+                #[unstable(feature = "saturating_int_impl", issue = "87920")] }
+
         #[unstable(feature = "saturating_int_impl", issue = "87920")]
         impl DivAssign for Saturating<$t> {
             #[inline]
@@ -851,31 +882,6 @@ fn neg(self) -> Self {
         }
         forward_ref_unop! { impl Neg, neg for Saturating<$t>,
                 #[unstable(feature = "saturating_int_impl", issue = "87920")] }
-
-        /// # Examples
-        ///
-        /// Basic usage:
-        ///
-        /// ```
-        /// #![feature(saturating_int_impl)]
-        /// use std::num::Saturating;
-        ///
-        #[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN + 1), Saturating(", stringify!($t), "::MAX) / Saturating(-1));")]
-        #[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MIN) / Saturating(-1));")]
-        #[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MAX) / Saturating(1));")]
-        #[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN), Saturating(", stringify!($t), "::MIN) / Saturating(1));")]
-        /// ```
-        #[unstable(feature = "saturating_int_impl", issue = "87920")]
-        impl Div for Saturating<$t> {
-            type Output = Saturating<$t>;
-
-            #[inline]
-            fn div(self, other: Saturating<$t>) -> Saturating<$t> {
-                Saturating(self.0.saturating_div(other.0))
-            }
-        }
-        forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
-                #[unstable(feature = "saturating_int_impl", issue = "87920")] }
     )*)
 }
 
@@ -924,18 +930,6 @@ pub fn is_power_of_two(self) -> bool {
             }
 
         }
-
-        #[unstable(feature = "saturating_int_impl", issue = "87920")]
-        impl Div for Saturating<$t> {
-            type Output = Saturating<$t>;
-
-            #[inline]
-            fn div(self, other: Saturating<$t>) -> Saturating<$t> {
-                Saturating(self.0.div(other.0))
-            }
-        }
-        forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
-                #[unstable(feature = "saturating_int_impl", issue = "87920")] }
     )*)
 }