MCPcopy Create free account
hub / github.com/HFQR/xitca-web / from_headers

Function from_headers

http-encoding/src/decode.rs:22–66  ·  view source on GitHub ↗
(headers: &HeaderMap)

Source from the content-addressed store, hash-verified

20}
21
22fn from_headers(headers: &HeaderMap) -> Result<FeaturedCode, EncodingError> {
23 let mut err = None;
24
25 for enc in headers
26 .get_all(&CONTENT_ENCODING)
27 .iter()
28 .filter_map(|v| v.to_str().ok())
29 .flat_map(|s| s.split(','))
30 .map(str::trim)
31 .filter(|s| !s.is_empty())
32 {
33 match ContentEncoding::try_parse(enc) {
34 Ok(encoding) => match encoding {
35 ContentEncoding::Identity => break,
36 ContentEncoding::Br => {
37 #[cfg(feature = "br")]
38 return Ok(FeaturedCode::DecodeBr(super::brotli::Decoder::new()));
39 }
40 ContentEncoding::Gzip => {
41 #[cfg(feature = "gz")]
42 return Ok(FeaturedCode::DecodeGz(super::gzip::Decoder::new(
43 super::writer::BytesMutWriter::new(),
44 )));
45 }
46 ContentEncoding::Deflate => {
47 #[cfg(feature = "de")]
48 return Ok(FeaturedCode::DecodeDe(super::deflate::Decoder::new(
49 super::writer::BytesMutWriter::new(),
50 )));
51 }
52 ContentEncoding::Zstd => {
53 #[cfg(feature = "zs")]
54 return Ok(FeaturedCode::DecodeZs(super::zstandard::Decoder::new()));
55 }
56 },
57 Err(e) => err = Some(e),
58 };
59 }
60
61 if let Some(e) = err {
62 Err(e.into())
63 } else {
64 Ok(FeaturedCode::default())
65 }
66}

Callers 5

grpcMethod · 0.85
sendMethod · 0.85
try_decoderFunction · 0.85
newMethod · 0.85
callMethod · 0.85

Calls 4

mapMethod · 0.45
iterMethod · 0.45
splitMethod · 0.45
is_emptyMethod · 0.45

Tested by

no test coverage detected