diff options
| author | klutzy <klutzytheklutzy@gmail.com> | 2013-12-08 16:12:07 +0900 |
|---|---|---|
| committer | klutzy <klutzytheklutzy@gmail.com> | 2013-12-11 15:50:51 +0900 |
| commit | 5a93d12e01c8275674bcdb6f3f765a7bdcf08779 (patch) | |
| tree | 32866c4cc1b0bdcd81e23dad666a51e34c94d8d4 /src/libstd/io/buffered.rs | |
| parent | b8b16ae0996074861693f0f76d5d937fafe6a37e (diff) | |
std::io: Add Buffer.lines(), change .bytes() api
- `Buffer.lines()` returns `LineIterator` which yields line using
`.read_line()`.
- `Reader.bytes()` now takes `&mut self` instead of `self`.
- `Reader.read_until()` swallows `EndOfFile`. This also affects
`.read_line()`.
Diffstat (limited to 'src/libstd/io/buffered.rs')
| -rw-r--r-- | src/libstd/io/buffered.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libstd/io/buffered.rs b/src/libstd/io/buffered.rs index 9c5927f8639..04f4d50036f 100644 --- a/src/libstd/io/buffered.rs +++ b/src/libstd/io/buffered.rs @@ -454,6 +454,28 @@ mod test { ~[0, 1, 0, '\n' as u8, 1, '\n' as u8, 2, 3, '\n' as u8]); } + #[test] + fn test_read_line() { + let in_buf = MemReader::new(bytes!("a\nb\nc").to_owned()); + let mut reader = BufferedReader::with_capacity(2, in_buf); + assert_eq!(reader.read_line(), Some(~"a\n")); + assert_eq!(reader.read_line(), Some(~"b\n")); + assert_eq!(reader.read_line(), Some(~"c")); + assert_eq!(reader.read_line(), None); + } + + #[test] + fn test_lines() { + let in_buf = MemReader::new(bytes!("a\nb\nc").to_owned()); + let mut reader = BufferedReader::with_capacity(2, in_buf); + let mut it = reader.lines(); + assert_eq!(it.next(), Some(~"a\n")); + assert_eq!(it.next(), Some(~"b\n")); + assert_eq!(it.next(), Some(~"c")); + assert_eq!(it.next(), None); + } + + #[bench] fn bench_buffered_reader(bh: &mut Harness) { bh.iter(|| { |
