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}