From e9707bc96d7bb0ddd887b207e0edf87a6c11af09 Mon Sep 17 00:00:00 2001 From: Kinto Date: Wed, 1 May 2024 17:58:58 +1000 Subject: [PATCH] Implement `FlattenOk::rfold` --- src/flatten_ok.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/flatten_ok.rs b/src/flatten_ok.rs index dc30e00ce..03f8f4ef8 100644 --- a/src/flatten_ok.rs +++ b/src/flatten_ok.rs @@ -141,6 +141,17 @@ where } } } + + fn rfold(self, init: B, mut f: F) -> B + where + Self: Sized, + F: FnMut(B, Self::Item) -> B, + { + self.iter.rfold(init, |acc, x| match x { + Ok(it) => it.into_iter().rfold(acc, |a, o| f(a, Ok(o))), + Err(e) => f(acc, Err(e)), + }) + } } impl Clone for FlattenOk