about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/std/src/io/mod.rs23
1 files changed, 21 insertions, 2 deletions
diff --git a/library/std/src/io/mod.rs b/library/std/src/io/mod.rs
index db3b0e2628f..0fc99baa666 100644
--- a/library/std/src/io/mod.rs
+++ b/library/std/src/io/mod.rs
@@ -2216,7 +2216,11 @@ impl<T: Read, U: Read> Read for Chain<T, U> {
 
     unsafe fn initializer(&self) -> Initializer {
         let initializer = self.first.initializer();
-        if initializer.should_initialize() { initializer } else { self.second.initializer() }
+        if initializer.should_initialize() {
+            initializer
+        } else {
+            self.second.initializer()
+        }
     }
 }
 
@@ -2235,7 +2239,11 @@ impl<T: BufRead, U: BufRead> BufRead for Chain<T, U> {
     }
 
     fn consume(&mut self, amt: usize) {
-        if !self.done_first { self.first.consume(amt) } else { self.second.consume(amt) }
+        if !self.done_first {
+            self.first.consume(amt)
+        } else {
+            self.second.consume(amt)
+        }
     }
 }
 
@@ -2465,6 +2473,17 @@ impl<R: Read> Iterator for Bytes<R> {
             };
         }
     }
+
+    default fn size_hint(&self) -> (usize, Option<usize>) {
+        (0, None)
+    }
+}
+
+#[stable(feature = "bufreader_size_hint", since = "1.51.0")]
+impl<T> Iterator for Bytes<BufReader<T>> {
+    fn size_hint(&self) -> (usize, Option<usize>) {
+        (self.inner.buffer().len(), None)
+    }
 }
 
 /// An iterator over the contents of an instance of `BufRead` split on a