rive_models/
autumn.rs

1use std::collections::HashMap;
2
3use serde::Deserialize;
4
5fn default_as_true() -> bool {
6    true
7}
8
9/// Uploaded attachment data
10#[derive(Deserialize, Debug, Clone)]
11pub struct UploadData {
12    /// Attachment ID
13    pub id: String,
14}
15
16/// Restricted content type
17#[derive(Deserialize, Debug, Clone)]
18pub enum ContentType {
19    Image,
20    Video,
21    Audio,
22}
23
24/// Tag information
25#[derive(Deserialize, Debug, Clone)]
26pub struct Tag {
27    /// Max file size
28    pub max_size: usize,
29
30    /// Whether to use ULID as an ID type
31    #[serde(default)]
32    pub use_ulid: bool,
33
34    /// Whether is the tag is enabled
35    #[serde(default = "default_as_true")]
36    pub enabled: bool,
37
38    /// List of required fields to be served
39    #[serde(default)]
40    pub serve_if_field_present: Vec<String>,
41
42    /// Restricted tag's content type
43    pub restrict_content_type: Option<ContentType>,
44}
45
46#[derive(Deserialize, Debug, Clone)]
47pub struct Config {
48    /// Autumn version
49    pub autumn: String,
50
51    /// Tag data per name
52    pub tags: HashMap<String, Tag>,
53
54    /// JPEG quality in percents
55    pub jpeg_quality: u8,
56}