graphitepdf_kit/
compress.rs1use crate::error::{GraphitePdfKitError, Result};
2use flate2::{Compression, write::ZlibEncoder};
3
4#[cfg(feature = "tracing")]
5use tracing::instrument;
6
7#[cfg_attr(feature = "tracing", instrument(skip(data)))]
8pub fn flate_encode(data: &[u8]) -> Result<Vec<u8>> {
9 let mut encoder = ZlibEncoder::new(Vec::new(), Compression::default());
10 std::io::Write::write_all(&mut encoder, data).map_err(|e| {
11 GraphitePdfKitError::CompressionError(format!("Failed to write to encoder: {}", e))
12 })?;
13 encoder.finish().map_err(|e| {
14 GraphitePdfKitError::CompressionError(format!("Failed to finish compression: {}", e))
15 })
16}