fn flush_buffer()

in src/blockio.rs [112:131]


	fn flush_buffer(&mut self) -> Result<(), io::Error> {
		if self.pos == 0 {
			return Ok(());
		}

		self.writer.write_u32::<LittleEndian>(self.pos as u32)?;
		self.writer.write_u32::<LittleEndian>(!(self.pos as u32))?;

		let slice = &self.buffer[..self.pos];
		let mut digest = crc32::Digest::new(crc32::IEEE);
		digest.write(slice);

		let crc = digest.sum32();
		self.writer.write_u32::<LittleEndian>(crc)?;
		self.writer.write_all(slice)?;

		self.pos = 0;

		Ok(())
	}