} else if self.pos >= self.buf.len() {
return None;
} else if self.buf.len() - self.pos >= 4 && self.pos < e.valid_up_to() {
- return match str::from_utf8(&self.buf[self.pos..e.valid_up_to()]) {
+ return match str::from_utf8(&self.buf[self.pos..self.pos + e.valid_up_to()]) {
Ok(s) => {
let mut chars = s.chars();
let c = chars.next().unwrap();
Some(Ok(c))
}
Err(e) => {
- let badbytes = self.buf[self.pos..e.valid_up_to()].to_vec();
+ let badbytes = self.buf[self.pos..self.pos + e.valid_up_to()].to_vec();
Some(Err(io::Error::new(
io::ErrorKind::InvalidData,