diff --git a/src/compression_engine/gzip.rs b/src/compression_engine/gzip.rs index cbb1f97..c931b58 100644 --- a/src/compression_engine/gzip.rs +++ b/src/compression_engine/gzip.rs @@ -75,4 +75,22 @@ impl AutoFinishGzEncoder { } #[cfg(feature = "gzip")] -impl Drop for AutoFinishGz \ No newline at end of file +impl Drop for AutoFinishGzEncoder { + fn drop(&mut self) { + if let Some(encoder) = self.encoder.take() { + debug!("COMPRESSION: Finishing"); + let _ = encoder.finish(); + } + } +} + +#[cfg(feature = "gzip")] +impl Write for AutoFinishGzEncoder { + fn write(&mut self, buf: &[u8]) -> io::Result { + self.encoder.as_mut().unwrap().write(buf) + } + + fn flush(&mut self) -> io::Result<()> { + self.encoder.as_mut().unwrap().flush() + } +}