Skip to content

Commit 2104bc6

Browse files
committed
Fix try_fold/reduce fullness
1 parent b407051 commit 2104bc6

File tree

2 files changed

+4
-30
lines changed

2 files changed

+4
-30
lines changed

src/iter/try_fold.rs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -136,22 +136,9 @@ impl<'r, C, U, F, T> Folder<T> for TryFoldFolder<'r, C, U, F>
136136
let result = self.result.and_then(|acc| {
137137
fold_op(acc, item).into_result()
138138
});
139-
TryFoldFolder {
140-
result: result,
141-
..self
139+
if result.is_err() {
140+
self.full.store(true, Ordering::Relaxed);
142141
}
143-
}
144-
145-
fn consume_iter<I>(self, iter: I) -> Self
146-
where I: IntoIterator<Item = T>
147-
{
148-
let fold_op = self.fold_op;
149-
let result = self.result.and_then(|mut acc| {
150-
for item in iter {
151-
acc = fold_op(acc, item).into_result()?;
152-
}
153-
Ok(acc)
154-
});
155142
TryFoldFolder {
156143
result: result,
157144
..self

src/iter/try_reduce.rs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,9 @@ impl<'r, R, T> Folder<T> for TryReduceFolder<'r, R, T>
102102
let result = self.result.and_then(|left| {
103103
reduce_op(left, item.into_result()?).into_result()
104104
});
105-
TryReduceFolder {
106-
result: result,
107-
..self
105+
if result.is_err() {
106+
self.full.store(true, Ordering::Relaxed)
108107
}
109-
}
110-
111-
fn consume_iter<I>(self, iter: I) -> Self
112-
where I: IntoIterator<Item = T>
113-
{
114-
let reduce_op = self.reduce_op;
115-
let result = self.result.and_then(|mut left| {
116-
for right in iter {
117-
left = reduce_op(left, right.into_result()?).into_result()?;
118-
}
119-
Ok(left)
120-
});
121108
TryReduceFolder {
122109
result: result,
123110
..self

0 commit comments

Comments
 (0)