1use std::collections::HashMap;
2
3use serde::Deserialize;
4
5fn default_as_true() -> bool {
6 true
7}
8
9#[derive(Deserialize, Debug, Clone)]
11pub struct UploadData {
12 pub id: String,
14}
15
16#[derive(Deserialize, Debug, Clone)]
18pub enum ContentType {
19 Image,
20 Video,
21 Audio,
22}
23
24#[derive(Deserialize, Debug, Clone)]
26pub struct Tag {
27 pub max_size: usize,
29
30 #[serde(default)]
32 pub use_ulid: bool,
33
34 #[serde(default = "default_as_true")]
36 pub enabled: bool,
37
38 #[serde(default)]
40 pub serve_if_field_present: Vec<String>,
41
42 pub restrict_content_type: Option<ContentType>,
44}
45
46#[derive(Deserialize, Debug, Clone)]
47pub struct Config {
48 pub autumn: String,
50
51 pub tags: HashMap<String, Tag>,
53
54 pub jpeg_quality: u8,
56}