fn read()

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())
	}