diff --git a/tower-http/src/compression_utils.rs b/tower-http/src/compression_utils.rs index 5231fc3e..5b4e4113 100644 --- a/tower-http/src/compression_utils.rs +++ b/tower-http/src/compression_utils.rs @@ -8,6 +8,7 @@ use http::HeaderValue; use http_body::Body; use pin_project_lite::pin_project; use std::{ + convert::TryInto, io, pin::Pin, task::{Context, Poll}, @@ -350,7 +351,7 @@ pub enum CompressionLevel { /// qualities. The interpretation of this depends on the algorithm chosen /// and the specific implementation backing it. /// Qualities are implicitly clamped to the algorithm's maximum. - Precise(i32), + Precise(u32), } impl Default for CompressionLevel { @@ -379,7 +380,9 @@ impl CompressionLevel { CompressionLevel::Fastest => AsyncCompressionLevel::Fastest, CompressionLevel::Best => AsyncCompressionLevel::Best, CompressionLevel::Default => AsyncCompressionLevel::Default, - CompressionLevel::Precise(quality) => AsyncCompressionLevel::Precise(quality), + CompressionLevel::Precise(quality) => { + AsyncCompressionLevel::Precise(quality.try_into().unwrap_or(i32::MAX)) + } } } }