Skip to content

Commit 10fb9d1

Browse files
committed
Implement FlattenOk::fold
1 parent dd6a569 commit 10fb9d1

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/flatten_ok.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,17 @@ where
7272
}
7373
}
7474

75+
fn fold<B, F>(self, init: B, mut f: F) -> B
76+
where
77+
Self: Sized,
78+
F: FnMut(B, Self::Item) -> B,
79+
{
80+
self.iter.fold(init, |acc, x| match x {
81+
Ok(it) => it.into_iter().fold(acc, |a, o| f(a, Ok(o))),
82+
Err(e) => f(acc, Err(e)),
83+
})
84+
}
85+
7586
fn size_hint(&self) -> (usize, Option<usize>) {
7687
let inner_hint = |inner: &Option<T::IntoIter>| {
7788
inner

0 commit comments

Comments
 (0)