use Read;
pub struct Bytes<R> {
reader: R,
}
impl<R: Read> Bytes<R> {
pub fn new(reader: R) -> Self {
Bytes {
reader: reader,
}
}
}
impl<R: Read> Iterator for Bytes<R> {
type Item = Result<u8, R::ReadError>;
fn next(&mut self) -> Option<Self::Item> {
let mut buf = [0];
match self.reader.read(&mut buf) {
Ok(0) => None,
Ok(_) => Some(Ok(buf[0])),
Err(e) => Some(Err(e)),
}
}
}