aboutsummaryrefslogtreecommitdiff
path: root/src/config.rs
blob: f78d58f8f07acfba00602a2362c0b89df796bae5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use serde::{Deserialize, Serialize};

use crate::ui::ribbon::RibbonConfig;

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AppConfig {
    pub success: bool,
    pub preferences: Preferences,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Preferences {
    pub common: CommonPreferences,
    #[serde(rename = "bbc-json-pie")]
    pub bbc_json_pie: BbcJsonPie,
    pub web: WebPreferences,
    pub mobile: MobilePreferences,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CommonPreferences {
    pub language: String,
    pub timezone: String,
    pub date_format: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BbcJsonPie {
    pub table_definitions: serde_json::Value,
    pub ribbon: RibbonConfig,
    pub views: serde_json::Value,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WebPreferences {
    pub sidebar_collapsed: bool,
    pub items_per_page: i32,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MobilePreferences {
    pub scan_mode: String,
}