about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSteven Fackler <sfackler@gmail.com>2014-01-09 21:03:18 -0800
committerSteven Fackler <sfackler@gmail.com>2014-01-09 21:03:18 -0800
commit52e06c663cb25308c1784b2263b93f4af32107c2 (patch)
treeba3c1349f6cb8c7eda0c70ac1382069d0863fe28
parent28ddc6537fcec5eb6033c78709b288abf72e8ae7 (diff)
downloadrust-52e06c663cb25308c1784b2263b93f4af32107c2.tar.gz
rust-52e06c663cb25308c1784b2263b93f4af32107c2.zip
Add eof to MemReader and BufReader
It's easy to figure out and useful as a sanity check sometimes.
-rw-r--r--src/libstd/io/mem.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libstd/io/mem.rs b/src/libstd/io/mem.rs
index 53aa176134d..f036131d211 100644
--- a/src/libstd/io/mem.rs
+++ b/src/libstd/io/mem.rs
@@ -111,6 +111,11 @@ impl MemReader {
         }
     }
 
+    /// Tests whether this reader has read all bytes in its buffer.
+    ///
+    /// If `true`, then this will no longer return bytes from `read`.
+    pub fn eof(&self) -> bool { self.pos == self.buf.len() }
+
     /// Acquires an immutable reference to the underlying buffer of this
     /// `MemReader`.
     ///
@@ -124,7 +129,7 @@ impl MemReader {
 
 impl Reader for MemReader {
     fn read(&mut self, buf: &mut [u8]) -> Option<uint> {
-        if self.pos == self.buf.len() { return None }
+        if self.eof() { return None }
 
         let write_len = min(buf.len(), self.buf.len() - self.pos);
         {
@@ -216,11 +221,16 @@ impl<'a> BufReader<'a> {
             pos: 0
         }
     }
+
+    /// Tests whether this reader has read all bytes in its buffer.
+    ///
+    /// If `true`, then this will no longer return bytes from `read`.
+    pub fn eof(&self) -> bool { self.pos == self.buf.len() }
 }
 
 impl<'a> Reader for BufReader<'a> {
     fn read(&mut self, buf: &mut [u8]) -> Option<uint> {
-        if self.pos == self.buf.len() { return None }
+        if self.eof() { return None }
 
         let write_len = min(buf.len(), self.buf.len() - self.pos);
         {