in src/blockio.rs [73:94]
fn read(&mut self, buf: &mut [u8]) -> Result<usize, io::Error> {
let mut bytes_read: usize = 0;
let mut size = buf.len();
while size > 0 {
if self.left == 0 {
self.fill_buffer()?;
}
let count = cmp::min(size, self.left);
let to = &mut buf[bytes_read..bytes_read + count];
let from = &self.buffer[self.pos..self.pos + count];
to.copy_from_slice(from);
self.pos += count;
self.left -= count;
bytes_read += count;
size -= count;
}
Ok(buf.len())
}