Skip to content

Commit c8f69dd

Browse files
committed
auto merge of #9038 : singingboyo/rust/with-mem-writer, r=anasazi
This is in many ways a replacement for the current std::io::with_str_writer.
2 parents f711650 + 5478ebb commit c8f69dd

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/libstd/rt/io/mem.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,14 @@ impl<'self> Seek for BufReader<'self> {
196196
fn seek(&mut self, _pos: i64, _style: SeekStyle) { fail!() }
197197
}
198198

199+
///Calls a function with a MemWriter and returns
200+
///the writer's stored vector.
201+
pub fn with_mem_writer(writeFn:&fn(&mut MemWriter)) -> ~[u8] {
202+
let mut writer = MemWriter::new();
203+
writeFn(&mut writer);
204+
writer.inner()
205+
}
206+
199207
#[cfg(test)]
200208
mod test {
201209
use prelude::*;
@@ -255,4 +263,10 @@ mod test {
255263
assert_eq!(reader.read(buf), None);
256264
assert!(reader.eof());
257265
}
266+
267+
#[test]
268+
fn test_with_mem_writer() {
269+
let buf = with_mem_writer(|wr| wr.write([1,2,3,4,5,6,7]));
270+
assert_eq!(buf, ~[1,2,3,4,5,6,7]);
271+
}
258272
}

0 commit comments

Comments
 (0)