diff --git a/src/commands/compress.rs b/src/commands/compress.rs index 71d6e46..54eb1a2 100644 --- a/src/commands/compress.rs +++ b/src/commands/compress.rs @@ -45,23 +45,21 @@ pub fn compress_files( // by default, ParCompress uses a default compression level of 3 // instead of the regular default that flate2 uses gzp::par::compress::ParCompress::::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), ), Bzip => Box::new(bzip2::write::BzEncoder::new( encoder, level.map_or_else(Default::default, |l| { - if l < 1 || l > 9 { - bzip2::Compression::new(1) - } else { - bzip2::Compression::new(l as u32) - } + bzip2::Compression::new(if l < 1 || l > 9 { 1 } else { l as u32 }) }), )), Lz4 => Box::new(lzzzz::lz4f::WriteCompressor::new( encoder, 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(), )?), Lzma => Box::new(xz2::write::XzEncoder::new( diff --git a/tests/integration.rs b/tests/integration.rs index 35832ac..428524f 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -139,7 +139,7 @@ fn multiple_files( fn single_file_level( ext: Extension, #[any(size_range(0..8).lift())] exts: Vec, - #[strategy(-3i16..30)] level: i16, + #[strategy(0i16..30)] level: i16, ) { let dir = tempdir().unwrap(); let dir = dir.path();