Skip to content

Commit ed2a587

Browse files
committed
Use read_exact in Bytes::next.
This is much faster.
1 parent 69ad06f commit ed2a587

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

library/std/src/io/mod.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -2781,13 +2781,10 @@ impl<R: Read> Iterator for Bytes<R> {
27812781

27822782
#[inline]
27832783
fn next(&mut self) -> Option<Result<u8>> {
2784-
loop {
2785-
return match self.inner.read(slice::from_mut(&mut self.byte)) {
2786-
Ok(0) => None,
2787-
Ok(..) => Some(Ok(self.byte)),
2788-
Err(ref e) if e.is_interrupted() => continue,
2789-
Err(e) => Some(Err(e)),
2790-
};
2784+
match self.inner.read_exact(slice::from_mut(&mut self.byte)) {
2785+
Ok(()) => Some(Ok(self.byte)),
2786+
Err(e) if e.kind() == ErrorKind::UnexpectedEof => None,
2787+
Err(e) => Some(Err(e)),
27912788
}
27922789
}
27932790

0 commit comments

Comments
 (0)