From cb543cded7d45e25ebe1a8f89181865e56ab4bb7 Mon Sep 17 00:00:00 2001 From: "Sergey \"Shnatsel\" Davidoff" Date: Thu, 5 Mar 2026 11:58:18 +0000 Subject: [PATCH 1/3] Expose precise DEFLATE level controls --- src/encoder/compression/deflate.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/encoder/compression/deflate.rs b/src/encoder/compression/deflate.rs index 3e5d528..2559d53 100644 --- a/src/encoder/compression/deflate.rs +++ b/src/encoder/compression/deflate.rs @@ -31,6 +31,20 @@ impl Deflate { } } +impl Deflate { + /// Create a new deflate compressor an exact level of compression. + /// + /// `0` stands for uncompressed + /// `1` stands for light but fast compression + /// `6` is the recommended balanced default + /// `9` is maximum compression ratio at the cost of slow encoding + pub fn exact_level(level: u8) -> Self { + Self { + level: FlateCompression::new(level as u32), + } + } +} + impl Default for Deflate { fn default() -> Self { Self::with_level(DeflateLevel::default()) From 53498074a495a904a22859ad0be6d88f0a42d2b3 Mon Sep 17 00:00:00 2001 From: "Sergey \"Shnatsel\" Davidoff" Date: Thu, 5 Mar 2026 12:22:25 +0000 Subject: [PATCH 2/3] Merge impl blocks --- src/encoder/compression/deflate.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/encoder/compression/deflate.rs b/src/encoder/compression/deflate.rs index 2559d53..c9c44c6 100644 --- a/src/encoder/compression/deflate.rs +++ b/src/encoder/compression/deflate.rs @@ -29,9 +29,7 @@ impl Deflate { level: FlateCompression::new(level as u32), } } -} -impl Deflate { /// Create a new deflate compressor an exact level of compression. /// /// `0` stands for uncompressed From a5890100999f4594016e3548fdc6551ab31c1659 Mon Sep 17 00:00:00 2001 From: "Sergey \"Shnatsel\" Davidoff" Date: Thu, 5 Mar 2026 12:22:37 +0000 Subject: [PATCH 3/3] Fix typo --- src/encoder/compression/deflate.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/encoder/compression/deflate.rs b/src/encoder/compression/deflate.rs index c9c44c6..ff5d134 100644 --- a/src/encoder/compression/deflate.rs +++ b/src/encoder/compression/deflate.rs @@ -30,7 +30,7 @@ impl Deflate { } } - /// Create a new deflate compressor an exact level of compression. + /// Create a new deflate compressor with an exact level of compression. /// /// `0` stands for uncompressed /// `1` stands for light but fast compression