Skip to content

Commit f59d645

Browse files
authored
Defactored Bytes::read
Removed unneeded refactoring of read_one_byte, which removed the unneeded dynamic dispatch (`dyn Read`) used by that function.
1 parent 3e90a12 commit f59d645

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

src/libstd/io/mod.rs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1936,18 +1936,6 @@ impl<T: BufRead> BufRead for Take<T> {
19361936
}
19371937
}
19381938

1939-
fn read_one_byte(reader: &mut dyn Read) -> Option<Result<u8>> {
1940-
let mut buf = [0];
1941-
loop {
1942-
return match reader.read(&mut buf) {
1943-
Ok(0) => None,
1944-
Ok(..) => Some(Ok(buf[0])),
1945-
Err(ref e) if e.kind() == ErrorKind::Interrupted => continue,
1946-
Err(e) => Some(Err(e)),
1947-
};
1948-
}
1949-
}
1950-
19511939
/// An iterator over `u8` values of a reader.
19521940
///
19531941
/// This struct is generally created by calling [`bytes`] on a reader.
@@ -1965,7 +1953,15 @@ impl<R: Read> Iterator for Bytes<R> {
19651953
type Item = Result<u8>;
19661954

19671955
fn next(&mut self) -> Option<Result<u8>> {
1968-
read_one_byte(&mut self.inner)
1956+
let mut buf = [0];
1957+
loop {
1958+
return match self.inner.read(&mut buf) {
1959+
Err(ref e) if e.kind() == ErrorKind::Interrupted => continue,
1960+
Ok(0) => None,
1961+
Ok(..) => Some(Ok(buf[0])),
1962+
Err(e) => Some(Err(e)),
1963+
};
1964+
}
19691965
}
19701966
}
19711967

0 commit comments

Comments
 (0)