credence_lib/configuration/
encoding.rs1use super::super::resolve::*;
2
3use {compris::resolve::*, kutil_cli::debug::*, kutil_http::*, kutil_std::metric::*};
4
5#[derive(Clone, Debug, Debuggable, Resolve)]
11pub struct EncodingConfiguration {
12 #[resolve]
14 #[debuggable(style(symbol))]
15 pub default: bool,
16
17 #[resolve(key = "skip-media-types")]
19 #[debuggable(iter(item), as(display), style(symbol))]
20 pub skip_media_types: Vec<ResolveMediaType>,
21
22 #[resolve(key = "min-body-size")]
24 #[debuggable(as(display), style(symbol))]
25 pub min_body_size: ResolveByteCount,
26}
27
28impl EncodingConfiguration {
29 pub fn skip_media_types(&self) -> Vec<MediaType> {
31 self.skip_media_types.iter().cloned().map(|media_type| media_type.value.into()).collect()
32 }
33}
34
35impl Default for EncodingConfiguration {
36 fn default() -> Self {
37 Self {
38 default: true,
39 skip_media_types: vec![
40 MediaType::new_fostered("image", "png").into(),
41 MediaType::new_fostered("image", "gif").into(),
42 MediaType::new_fostered("image", "jpeg").into(),
43 MediaType::new_fostered("audio", "mpeg").into(),
44 MediaType::new_fostered("video", "mpeg").into(),
45 ],
46 min_body_size: ByteCount::from_kibibytes(1).into(),
47 }
48 }
49}