rama_http/layer/decompression/
layer.rs1use super::Decompression;
2use crate::headers::encoding::AcceptEncoding;
3use rama_core::Layer;
4
5#[derive(Debug, Default, Clone)]
12pub struct DecompressionLayer {
13 accept: AcceptEncoding,
14}
15
16impl<S> Layer<S> for DecompressionLayer {
17 type Service = Decompression<S>;
18
19 fn layer(&self, service: S) -> Self::Service {
20 Decompression {
21 inner: service,
22 accept: self.accept,
23 }
24 }
25}
26
27impl DecompressionLayer {
28 pub fn new() -> Self {
30 Default::default()
31 }
32
33 pub fn gzip(mut self, enable: bool) -> Self {
35 self.accept.set_gzip(enable);
36 self
37 }
38
39 pub fn set_gzip(&mut self, enable: bool) -> &mut Self {
41 self.accept.set_gzip(enable);
42 self
43 }
44
45 pub fn deflate(mut self, enable: bool) -> Self {
47 self.accept.set_deflate(enable);
48 self
49 }
50
51 pub fn set_deflate(&mut self, enable: bool) -> &mut Self {
53 self.accept.set_deflate(enable);
54 self
55 }
56
57 pub fn br(mut self, enable: bool) -> Self {
59 self.accept.set_br(enable);
60 self
61 }
62
63 pub fn set_br(&mut self, enable: bool) -> &mut Self {
65 self.accept.set_br(enable);
66 self
67 }
68
69 pub fn zstd(mut self, enable: bool) -> Self {
71 self.accept.set_zstd(enable);
72 self
73 }
74
75 pub fn set_zstd(&mut self, enable: bool) -> &mut Self {
77 self.accept.set_zstd(enable);
78 self
79 }
80}