Skip to content

Commit 72a5252

Browse files
committed
auto merge of #11437 : sfackler/rust/mem-eof, r=alexcrichton
It's easy to figure out and useful as a sanity check sometimes.
2 parents 587d0f5 + 52e06c6 commit 72a5252

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/libstd/io/mem.rs

+12-2
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ impl MemReader {
111111
}
112112
}
113113

114+
/// Tests whether this reader has read all bytes in its buffer.
115+
///
116+
/// If `true`, then this will no longer return bytes from `read`.
117+
pub fn eof(&self) -> bool { self.pos == self.buf.len() }
118+
114119
/// Acquires an immutable reference to the underlying buffer of this
115120
/// `MemReader`.
116121
///
@@ -124,7 +129,7 @@ impl MemReader {
124129

125130
impl Reader for MemReader {
126131
fn read(&mut self, buf: &mut [u8]) -> Option<uint> {
127-
if self.pos == self.buf.len() { return None }
132+
if self.eof() { return None }
128133

129134
let write_len = min(buf.len(), self.buf.len() - self.pos);
130135
{
@@ -216,11 +221,16 @@ impl<'a> BufReader<'a> {
216221
pos: 0
217222
}
218223
}
224+
225+
/// Tests whether this reader has read all bytes in its buffer.
226+
///
227+
/// If `true`, then this will no longer return bytes from `read`.
228+
pub fn eof(&self) -> bool { self.pos == self.buf.len() }
219229
}
220230

221231
impl<'a> Reader for BufReader<'a> {
222232
fn read(&mut self, buf: &mut [u8]) -> Option<uint> {
223-
if self.pos == self.buf.len() { return None }
233+
if self.eof() { return None }
224234

225235
let write_len = min(buf.len(), self.buf.len() - self.pos);
226236
{

0 commit comments

Comments
 (0)