about summary refs log tree commit diff
path: root/src/libstd/rt/io
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-05-21 18:24:42 -0700
committerPatrick Walton <pcwalton@mimiga.net>2013-05-22 21:57:11 -0700
commit18df18c817b5e109710c58f512a2cc5ad14fa8b2 (patch)
tree09cb14a7fa03754cc978d4824a47979acc6d836e /src/libstd/rt/io
parentee52865c8848657e737e3c2071728b062ec9c8de (diff)
downloadrust-18df18c817b5e109710c58f512a2cc5ad14fa8b2.tar.gz
rust-18df18c817b5e109710c58f512a2cc5ad14fa8b2.zip
libstd: Fix merge fallout.
Diffstat (limited to 'src/libstd/rt/io')
-rw-r--r--src/libstd/rt/io/mock.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/libstd/rt/io/mock.rs b/src/libstd/rt/io/mock.rs
new file mode 100644
index 00000000000..b580b752bd9
--- /dev/null
+++ b/src/libstd/rt/io/mock.rs
@@ -0,0 +1,50 @@
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use option::{Option, None};
+use rt::io::{Reader, Writer};
+
+pub struct MockReader {
+    read: ~fn(buf: &mut [u8]) -> Option<uint>,
+    eof: ~fn() -> bool
+}
+
+impl MockReader {
+    pub fn new() -> MockReader {
+        MockReader {
+            read: |_| None,
+            eof: || false
+        }
+    }
+}
+
+impl Reader for MockReader {
+    fn read(&mut self, buf: &mut [u8]) -> Option<uint> { (self.read)(buf) }
+    fn eof(&mut self) -> bool { (self.eof)() }
+}
+
+pub struct MockWriter {
+    write: ~fn(buf: &[u8]),
+    flush: ~fn()
+}
+
+impl MockWriter {
+    pub fn new() -> MockWriter {
+        MockWriter {
+            write: |_| (),
+            flush: || ()
+        }
+    }
+}
+
+impl Writer for MockWriter {
+    fn write(&mut self, buf: &[u8]) { (self.write)(buf) }
+    fn flush(&mut self) { (self.flush)() }
+}
\ No newline at end of file