]> git.lizzy.rs Git - rust.git/blobdiff - library/core/src/iter/range.rs
Rollup merge of #105681 - tshepang:doc-mir-visit, r=Nilstrieb
[rust.git] / library / core / src / iter / range.rs
index f7aeee8c9adc6f36ec1f989441ae897b94b4763c..ac7b389b15b4d5e9e00e99ef2a4740a7c51b2971 100644 (file)
@@ -1150,19 +1150,7 @@ fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
         self.spec_try_fold(init, f)
     }
 
-    #[inline]
-    fn fold<B, F>(mut self, init: B, f: F) -> B
-    where
-        Self: Sized,
-        F: FnMut(B, Self::Item) -> B,
-    {
-        #[inline]
-        fn ok<B, T>(mut f: impl FnMut(B, T) -> B) -> impl FnMut(B, T) -> Result<B, !> {
-            move |acc, x| Ok(f(acc, x))
-        }
-
-        self.try_fold(init, ok(f)).unwrap()
-    }
+    impl_fold_via_try_fold! { fold -> try_fold }
 
     #[inline]
     fn last(mut self) -> Option<A> {
@@ -1230,19 +1218,7 @@ fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
         self.spec_try_rfold(init, f)
     }
 
-    #[inline]
-    fn rfold<B, F>(mut self, init: B, f: F) -> B
-    where
-        Self: Sized,
-        F: FnMut(B, Self::Item) -> B,
-    {
-        #[inline]
-        fn ok<B, T>(mut f: impl FnMut(B, T) -> B) -> impl FnMut(B, T) -> Result<B, !> {
-            move |acc, x| Ok(f(acc, x))
-        }
-
-        self.try_rfold(init, ok(f)).unwrap()
-    }
+    impl_fold_via_try_fold! { rfold -> try_rfold }
 }
 
 // Safety: See above implementation for `ops::Range<A>`