use std::io::{self, prelude::*}; pub struct BufReader { reader: io::BufReader, } impl BufReader { pub fn new(f: R) -> Self { Self { reader: io::BufReader::new(f), } } pub fn read_line<'buf>( &mut self, buffer: &'buf mut String, ) -> Option> { buffer.clear(); self.reader .read_line(buffer) .map(|u| if u == 0 { None } else { Some(buffer) }) .transpose() } }