use crate::Compress;
use http_1x::header::{HeaderName, HeaderValue};
pub trait CompressRequest: Compress + CloneCompressRequest {
fn header_name(&self) -> HeaderName {
HeaderName::from_static("content-encoding")
}
fn header_value(&self) -> HeaderValue;
}
pub trait CloneCompressRequest {
fn clone_request_compressor(&self) -> Box<dyn CompressRequest>;
}
impl<T> CloneCompressRequest for T
where
T: CompressRequest + Clone + 'static,
{
fn clone_request_compressor(&self) -> Box<dyn CompressRequest> {
Box::new(self.clone())
}
}
impl Clone for Box<dyn CompressRequest> {
fn clone(&self) -> Self {
self.clone_request_compressor()
}
}