about summary refs log tree commit diff
path: root/src/libstd/io
diff options
context:
space:
mode:
authorJonathan Behrens <fintelia@gmail.com>2017-10-18 14:27:33 -0400
committerJonathan Behrens <fintelia@gmail.com>2017-10-18 14:27:33 -0400
commitdf4b78160cff6ba121df35b99d6c42a3dd1de62d (patch)
tree78dac10ea456bdfaed4c695fe2bc2f79b1f6db65 /src/libstd/io
parent611f375a862148595d1d7c221870312e572f7d3c (diff)
downloadrust-df4b78160cff6ba121df35b99d6c42a3dd1de62d.tar.gz
rust-df4b78160cff6ba121df35b99d6c42a3dd1de62d.zip
Implement is_empty() for BufReader
Diffstat (limited to 'src/libstd/io')
-rw-r--r--src/libstd/io/buffered.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libstd/io/buffered.rs b/src/libstd/io/buffered.rs
index 4ebd3554fd1..6d3fbc9d268 100644
--- a/src/libstd/io/buffered.rs
+++ b/src/libstd/io/buffered.rs
@@ -147,6 +147,31 @@ impl<R: Read> BufReader<R> {
     #[stable(feature = "rust1", since = "1.0.0")]
     pub fn get_mut(&mut self) -> &mut R { &mut self.inner }
 
+    /// Returns `true` if there are no bytes in the internal buffer.
+    ///
+    /// # Examples
+    /// ```
+    /// # #![feature(bufreader_is_empty)]
+    /// use std::io::BufReader;
+    /// use std::io::BufRead;
+    /// use std::fs::File;
+    ///
+    /// # fn foo() -> std::io::Result<()> {
+    /// let f1 = File::open("log.txt")?;
+    /// let mut reader = BufReader::new(f1);
+    /// assert!(reader.is_empty());
+    ///
+    /// if reader.fill_buf()?.len() > 0 {
+    ///     assert!(!reader.is_empty());
+    /// }
+    /// # Ok(())
+    /// # }
+    /// ```
+    #[unstable(feature = "bufreader_is_empty", issue = "45323", reason = "recently added")]
+    pub fn is_empty(&self) -> bool {
+        self.pos == self.cap
+    }
+
     /// Unwraps this `BufReader`, returning the underlying reader.
     ///
     /// Note that any leftover data in the internal buffer is lost.