about summary refs log tree commit diff
path: root/src/libstd/rt
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-10-06 16:08:56 -0700
committerAlex Crichton <alex@alexcrichton.com>2013-10-10 03:38:51 -0700
commit2290ce14f29450560cd34c219dbc8b6a10283967 (patch)
tree8cd9fd814b29f514de8582f52dfd4c26bab3cfad /src/libstd/rt
parentff95904c488f573bfd07e94a0d456e4d35f325ce (diff)
downloadrust-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.rs8
-rw-r--r--src/libstd/rt/io/mod.rs20
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 {}