diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-10-06 16:08:56 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-10-10 03:38:51 -0700 |
| commit | 2290ce14f29450560cd34c219dbc8b6a10283967 (patch) | |
| tree | 8cd9fd814b29f514de8582f52dfd4c26bab3cfad /src/libstd/rt | |
| parent | ff95904c488f573bfd07e94a0d456e4d35f325ce (diff) | |
| download | rust-2290ce14f29450560cd34c219dbc8b6a10283967.tar.gz rust-2290ce14f29450560cd34c219dbc8b6a10283967.zip | |
Remove some users of io::file_reader
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/io/buffered.rs | 8 | ||||
| -rw-r--r-- | src/libstd/rt/io/mod.rs | 20 |
2 files changed, 24 insertions, 4 deletions
diff --git a/src/libstd/rt/io/buffered.rs b/src/libstd/rt/io/buffered.rs index 725477bec41..9dcb35c806f 100644 --- a/src/libstd/rt/io/buffered.rs +++ b/src/libstd/rt/io/buffered.rs @@ -89,14 +89,14 @@ impl<R: Reader> BufferedReader<R> { /// Reads the next line of input, interpreted as a sequence of utf-8 /// encoded unicode codepoints. If a newline is encountered, then the /// newline is contained in the returned string. - pub fn read_line(&mut self) -> ~str { - str::from_utf8_owned(self.read_until('\n' as u8)) + pub fn read_line(&mut self) -> Option<~str> { + self.read_until('\n' as u8).map(str::from_utf8_owned) } /// Reads a sequence of bytes leading up to a specified delimeter. Once the /// specified byte is encountered, reading ceases and the bytes up to and /// including the delimiter are returned. - pub fn read_until(&mut self, byte: u8) -> ~[u8] { + pub fn read_until(&mut self, byte: u8) -> Option<~[u8]> { let mut res = ~[]; let mut used; loop { @@ -120,7 +120,7 @@ impl<R: Reader> BufferedReader<R> { self.pos += used; } self.pos += used; - return res; + return if res.len() == 0 {None} else {Some(res)}; } fn fill_buffer<'a>(&'a mut self) -> &'a [u8] { diff --git a/src/libstd/rt/io/mod.rs b/src/libstd/rt/io/mod.rs index d56ad9ce848..fa53f3cda25 100644 --- a/src/libstd/rt/io/mod.rs +++ b/src/libstd/rt/io/mod.rs @@ -462,6 +462,16 @@ pub trait Reader { fn eof(&mut self) -> bool; } +impl Reader for ~Reader { + fn read(&mut self, buf: &mut [u8]) -> Option<uint> { self.read(buf) } + fn eof(&mut self) -> bool { self.eof() } +} + +impl<'self> Reader for &'self mut Reader { + fn read(&mut self, buf: &mut [u8]) -> Option<uint> { self.read(buf) } + fn eof(&mut self) -> bool { self.eof() } +} + pub trait Writer { /// Write the given buffer /// @@ -474,6 +484,16 @@ pub trait Writer { fn flush(&mut self); } +impl Writer for ~Writer { + fn write(&mut self, buf: &[u8]) { self.write(buf) } + fn flush(&mut self) { self.flush() } +} + +impl<'self> Writer for &'self mut Writer { + fn write(&mut self, buf: &[u8]) { self.write(buf) } + fn flush(&mut self) { self.flush() } +} + pub trait Stream: Reader + Writer { } impl<T: Reader + Writer> Stream for T {} |
