about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrandon Sanderson <singingboyo@hotmail.com>2013-08-24 00:22:40 -0700
committerBrandon Sanderson <singingboyo@hotmail.com>2013-09-06 21:21:59 -0700
commit5478ebb553c5b0df91efde8d9da4b0eaac6c91fa (patch)
tree252568e4cb38cd9629369ce01764f699b382b46f /src
parent28d042e198d700287f0b946b13dab3b99e0ed962 (diff)
downloadrust-5478ebb553c5b0df91efde8d9da4b0eaac6c91fa.tar.gz
rust-5478ebb553c5b0df91efde8d9da4b0eaac6c91fa.zip
Add with_mem_writer to std::rt::io::mem.
This is in many ways a replacement for the current
std::io::with_str_writer.
Diffstat (limited to 'src')
-rw-r--r--src/libstd/rt/io/mem.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libstd/rt/io/mem.rs b/src/libstd/rt/io/mem.rs
index b278f10aed0..808e9f3a383 100644
--- a/src/libstd/rt/io/mem.rs
+++ b/src/libstd/rt/io/mem.rs
@@ -196,6 +196,14 @@ impl<'self> Seek for BufReader<'self> {
     fn seek(&mut self, _pos: i64, _style: SeekStyle) { fail!() }
 }
 
+///Calls a function with a MemWriter and returns
+///the writer's stored vector.
+pub fn with_mem_writer(writeFn:&fn(&mut MemWriter)) -> ~[u8] {
+  let mut writer = MemWriter::new();
+  writeFn(&mut writer);
+  writer.inner()
+}
+
 #[cfg(test)]
 mod test {
     use prelude::*;
@@ -255,4 +263,10 @@ mod test {
         assert_eq!(reader.read(buf), None);
         assert!(reader.eof());
     }
+
+    #[test]
+    fn test_with_mem_writer() {
+        let buf = with_mem_writer(|wr| wr.write([1,2,3,4,5,6,7]));
+        assert_eq!(buf, ~[1,2,3,4,5,6,7]);
+    }
 }