Rewrite with new functional-update syntax

This commit is contained in:
Chris Hennick 2023-05-27 14:06:33 -07:00
parent 87291bc429
commit 3161de632e
No known key found for this signature in database
GPG key ID: 25653935CC8B6C74

View file

@ -1121,18 +1121,19 @@ impl<W: Write + Seek> GenericZipWriter<W> {
))] ))]
CompressionMethod::Deflated => { CompressionMethod::Deflated => {
#[cfg(all( #[cfg(all(
not(feature = "deflate"), not(feature = "deflate"),
not(feature = "deflate-miniz"), not(feature = "deflate-miniz"),
not(feature = "deflate-zlib"), not(feature = "deflate-zlib"),
feature = "deflate-zopfli" feature = "deflate-zopfli"
))] ))]
let default = 24; let default = 24;
#[cfg(any( #[cfg(any(
feature = "deflate", feature = "deflate",
feature = "deflate-miniz", feature = "deflate-miniz",
feature = "deflate-zlib"))] feature = "deflate-zlib"
let default = flate2::Compression::default().level() as i32; ))]
let default = Compression::default().level() as i32;
let level = clamp_opt( let level = clamp_opt(
compression_level.unwrap_or(default), compression_level.unwrap_or(default),
@ -1151,41 +1152,49 @@ impl<W: Write + Seek> GenericZipWriter<W> {
})); }));
#[cfg(all( #[cfg(all(
not(feature = "deflate"), not(feature = "deflate"),
not(feature = "deflate-miniz"), not(feature = "deflate-miniz"),
not(feature = "deflate-zlib"), not(feature = "deflate-zlib"),
feature = "deflate-zopfli" feature = "deflate-zopfli"
))] ))]
return Ok(Box::new(move |bare| { return Ok(Box::new(move |bare| {
let mut options = Options::default(); let mut options = Options::default();
options.iteration_count = NonZeroU8::try_from((level - best_non_zopfli) as u8).unwrap(); options.iteration_count =
NonZeroU8::try_from((level - best_non_zopfli) as u8).unwrap();
GenericZipWriter::ZopfliDeflater(zopfli::DeflateEncoder::new( GenericZipWriter::ZopfliDeflater(zopfli::DeflateEncoder::new(
options, options,
Default::default(), Default::default(),
bare bare,
)) ))
})); }));
#[cfg(all( #[cfg(all(
any(feature = "deflate", any(
feature = "deflate-miniz", feature = "deflate",
feature = "deflate-zlib"), feature = "deflate-miniz",
feature = "deflate-zopfli") feature = "deflate-zlib"
)] ),
feature = "deflate-zopfli"
))]
Ok(Box::new(move |bare| { Ok(Box::new(move |bare| {
let best_non_zopfli = Compression::best().level(); let best_non_zopfli = Compression::best().level();
if level > best_non_zopfli { if level > best_non_zopfli {
let mut options = Options::default(); let options = Options {
options.iteration_count = NonZeroU8::try_from((level - best_non_zopfli) as u8).unwrap(); iteration_count: NonZeroU8::try_from(
(level - best_non_zopfli) as u8,
)
.unwrap(),
..Default::default()
};
GenericZipWriter::ZopfliDeflater(zopfli::DeflateEncoder::new( GenericZipWriter::ZopfliDeflater(zopfli::DeflateEncoder::new(
options, options,
Default::default(), Default::default(),
bare bare,
)) ))
} else { } else {
GenericZipWriter::Deflater(DeflateEncoder::new( GenericZipWriter::Deflater(DeflateEncoder::new(
bare, bare,
flate2::Compression::new(level), Compression::new(level),
)) ))
} }
})) }))
@ -1306,7 +1315,7 @@ fn deflate_compression_level_range() -> std::ops::RangeInclusive<i32> {
feature = "deflate-miniz", feature = "deflate-miniz",
feature = "deflate-zlib", feature = "deflate-zlib",
))] ))]
let min = flate2::Compression::none().level() as i32; let min = Compression::none().level() as i32;
#[cfg(not(any( #[cfg(not(any(
feature = "deflate", feature = "deflate",
@ -1319,7 +1328,7 @@ fn deflate_compression_level_range() -> std::ops::RangeInclusive<i32> {
let max = flate2::Compression::best().level() as i32; let max = flate2::Compression::best().level() as i32;
#[cfg(feature = "deflate-zopfli")] #[cfg(feature = "deflate-zopfli")]
let max = flate2::Compression::best().level() as i32 + u8::MAX as i32; let max = Compression::best().level() as i32 + u8::MAX as i32;
min..=max min..=max
} }