bytes 0.4.12

Types and traits for working with bytes
Documentation
extern crate bytes;

use std::io::{BufRead, Cursor, Read};

use bytes::Buf;

#[test]
fn read() {
    let buf1 = Cursor::new(b"hello ");
    let buf2 = Cursor::new(b"world");
    let buf = Buf::chain(buf1, buf2); // Disambiguate with Read::chain
    let mut buffer = Vec::new();
    buf.reader().read_to_end(&mut buffer).unwrap();
    assert_eq!(b"hello world", &buffer[..]);
}

#[test]
fn buf_read() {
    let buf1 = Cursor::new(b"hell");
    let buf2 = Cursor::new(b"o\nworld");
    let mut reader = Buf::chain(buf1, buf2).reader();
    let mut line = String::new();
    reader.read_line(&mut line).unwrap();
    assert_eq!("hello\n", &line);
    line.clear();
    reader.read_line(&mut line).unwrap();
    assert_eq!("world", &line);
}