Add with_mem_writer to std::rt::io::mem.

This is in many ways a replacement for the current
std::io::with_str_writer.
This commit is contained in:
Brandon Sanderson
2013-08-24 00:22:40 -07:00
parent 28d042e198
commit 5478ebb553
+14
View File
@@ -196,6 +196,14 @@ fn tell(&self) -> u64 { self.pos as u64 }
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 @@ fn test_buf_reader() {
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]);
}
}