aws_smithy_compression/
http.rs1#[cfg(feature = "http-body-0-4-x")]
10pub mod http_body_0_4_x {
11    use crate::Compress;
12    use http_0_2::header::{HeaderName, HeaderValue};
13
14    pub trait CompressRequest: Compress + CloneCompressRequest {
16        fn header_name(&self) -> HeaderName {
18            HeaderName::from_static("content-encoding")
19        }
20
21        fn header_value(&self) -> HeaderValue;
23    }
24
25    pub trait CloneCompressRequest {
27        fn clone_request_compressor(&self) -> Box<dyn CompressRequest>;
29    }
30
31    impl<T> CloneCompressRequest for T
32    where
33        T: CompressRequest + Clone + 'static,
34    {
35        fn clone_request_compressor(&self) -> Box<dyn CompressRequest> {
36            Box::new(self.clone())
37        }
38    }
39
40    impl Clone for Box<dyn CompressRequest> {
41        fn clone(&self) -> Self {
42            self.clone_request_compressor()
43        }
44    }
45}
46
47#[cfg(feature = "http-body-1-x")]
49pub mod http_body_1_x {
50    use crate::Compress;
51    use http_1_0::header::{HeaderName, HeaderValue};
52
53    pub trait CompressRequest: Compress + CloneCompressRequest {
55        fn header_name(&self) -> HeaderName {
57            HeaderName::from_static("content-encoding")
58        }
59
60        fn header_value(&self) -> HeaderValue;
62    }
63
64    pub trait CloneCompressRequest {
66        fn clone_request_compressor(&self) -> Box<dyn CompressRequest>;
68    }
69
70    impl<T> CloneCompressRequest for T
71    where
72        T: CompressRequest + Clone + 'static,
73    {
74        fn clone_request_compressor(&self) -> Box<dyn CompressRequest> {
75            Box::new(self.clone())
76        }
77    }
78
79    impl Clone for Box<dyn CompressRequest> {
80        fn clone(&self) -> Self {
81            self.clone_request_compressor()
82        }
83    }
84}