This commit is contained in:
xgdgsc 2023-03-17 21:36:31 +08:00
parent ffa16c7d6e
commit d9ffd42c8f
2 changed files with 6 additions and 8 deletions

View File

@ -45,23 +45,21 @@ pub fn compress_files(
// by default, ParCompress uses a default compression level of 3 // by default, ParCompress uses a default compression level of 3
// instead of the regular default that flate2 uses // instead of the regular default that flate2 uses
gzp::par::compress::ParCompress::<gzp::deflate::Gzip>::builder() gzp::par::compress::ParCompress::<gzp::deflate::Gzip>::builder()
.compression_level(level.map_or_else(Default::default, |l| gzp::Compression::new(l as u32))) .compression_level(level.map_or_else(Default::default, |l| {
gzp::Compression::new(if l < 1 || l > 9 { 1 } else { l as u32 })
}))
.from_writer(encoder), .from_writer(encoder),
), ),
Bzip => Box::new(bzip2::write::BzEncoder::new( Bzip => Box::new(bzip2::write::BzEncoder::new(
encoder, encoder,
level.map_or_else(Default::default, |l| { level.map_or_else(Default::default, |l| {
if l < 1 || l > 9 { bzip2::Compression::new(if l < 1 || l > 9 { 1 } else { l as u32 })
bzip2::Compression::new(1)
} else {
bzip2::Compression::new(l as u32)
}
}), }),
)), )),
Lz4 => Box::new(lzzzz::lz4f::WriteCompressor::new( Lz4 => Box::new(lzzzz::lz4f::WriteCompressor::new(
encoder, encoder,
lzzzz::lz4f::PreferencesBuilder::new() lzzzz::lz4f::PreferencesBuilder::new()
.compression_level(level.map_or(0, |l| l as i32)) .compression_level(level.map_or(0, |l| if l < 1 || l > 12 { 0 } else { l as i32 }))
.build(), .build(),
)?), )?),
Lzma => Box::new(xz2::write::XzEncoder::new( Lzma => Box::new(xz2::write::XzEncoder::new(

View File

@ -139,7 +139,7 @@ fn multiple_files(
fn single_file_level( fn single_file_level(
ext: Extension, ext: Extension,
#[any(size_range(0..8).lift())] exts: Vec<FileExtension>, #[any(size_range(0..8).lift())] exts: Vec<FileExtension>,
#[strategy(-3i16..30)] level: i16, #[strategy(0i16..30)] level: i16,
) { ) {
let dir = tempdir().unwrap(); let dir = tempdir().unwrap();
let dir = dir.path(); let dir = dir.path();