credence_lib/configuration/
encoding.rs1use super::super::resolve::*;
2
3use {
4 compris::resolve::*,
5 kutil::{cli::depict::*, http::*, std::metric::*},
6};
7
8#[derive(Clone, Debug, Depict, Resolve)]
14pub struct EncodingConfiguration {
15 #[resolve]
17 #[depict(style(symbol))]
18 pub default: bool,
19
20 #[resolve(key = "skip-media-types")]
22 #[depict(iter(item), as(display), style(symbol))]
23 pub skip_media_types: Vec<ResolveMediaType>,
24
25 #[resolve(key = "min-body-size")]
27 #[depict(as(display), style(symbol))]
28 pub min_body_size: ResolveByteCount,
29}
30
31impl EncodingConfiguration {
32 pub fn skip_media_types(&self) -> Vec<MediaType> {
34 self.skip_media_types.iter().cloned().map(|media_type| media_type.inner.into()).collect()
35 }
36}
37
38impl Default for EncodingConfiguration {
39 fn default() -> Self {
40 Self {
41 default: true,
42 skip_media_types: vec![
43 MediaType::new_fostered("image", "png").into(),
44 MediaType::new_fostered("image", "gif").into(),
45 MediaType::new_fostered("image", "jpeg").into(),
46 MediaType::new_fostered("audio", "mpeg").into(),
47 MediaType::new_fostered("video", "mpeg").into(),
48 ],
49 min_body_size: ByteCount::from_kibibytes(1).into(),
50 }
51 }
52}