Skip to content

Commit 8421d27

Browse files
committed
address some flatten_ok() PR comments
1 parent 80046c6 commit 8421d27

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

src/flatten_ok.rs

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::fmt;
2+
13
pub fn flatten_ok<I, T, E>(iter: I) -> FlattenOk<I, T, E>
24
where
35
I: Iterator<Item = Result<T, E>>,
@@ -35,12 +37,12 @@ where
3537
} else {
3638
self.inner = None;
3739
}
38-
} else {
39-
match self.iter.next() {
40-
Some(Ok(ok)) => self.inner = Some(ok.into_iter()),
41-
Some(Err(e)) => return Some(Err(e)),
42-
None => return None,
43-
}
40+
}
41+
42+
match self.iter.next() {
43+
Some(Ok(ok)) => self.inner = Some(ok.into_iter()),
44+
Some(Err(e)) => return Some(Err(e)),
45+
None => return None,
4446
}
4547
}
4648
}
@@ -52,10 +54,20 @@ where
5254
T: IntoIterator,
5355
T::IntoIter: Clone,
5456
{
55-
fn clone(&self) -> Self {
56-
Self {
57-
iter: self.iter.clone(),
58-
inner: self.inner.clone(),
59-
}
57+
#[inline]
58+
clone_fields!(iter, inner);
59+
}
60+
61+
impl<I, T, E> fmt::Debug for FlattenOk<I, T, E>
62+
where
63+
I: Iterator<Item = Result<T, E>> + fmt::Debug,
64+
T: IntoIterator,
65+
T::IntoIter: fmt::Debug,
66+
{
67+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
68+
f.debug_struct("FlattenOk")
69+
.field("iter", &self.iter)
70+
.field("inner", &self.inner)
71+
.finish()
6072
}
6173
}

0 commit comments

Comments
 (0)