leftover is a BufRead adapter that keeps partial data available across buffer
boundaries.
use std::io::BufReader;
use leftover::LeftoverReader;
let input = BufReader::with_capacity(3, b"hello\n".as_slice());
let mut reader = LeftoverReader::new(input);
// Copy the incomplete line into the leftover before reading more.
reader.fill_view().unwrap().accumulate();
let view = reader.fill_view().unwrap();
assert_eq!(view.leftover(), b"hel");
assert_eq!(view.buffer(), b"lo\n");
// Take the saved prefix together with three bytes from the current chunk.
assert_eq!(view.take_view(3), b"hello\n");