1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, PartialEq, Serialize, Deserialize, Clone, Default)]
4pub struct LogoConfig {
5 #[serde(default = "default_status")]
6 pub status: String,
7 #[serde(default = "default_char_type")]
8 pub char_type: String,
9 #[serde(default = "default_picture_path")]
10 pub picture_path: String,
11}
12
13fn default_status() -> String {
14 "enable".to_owned()
15}
16
17fn default_char_type() -> String {
18 "braille".to_owned()
19}
20
21fn default_picture_path() -> String {
22 "none".to_owned()
23}
24
25#[derive(Debug, PartialEq, Serialize, Deserialize, Clone, Default)]
26pub struct Config {
27 #[serde(default = "default_language")]
28 pub language: String,
29 #[serde(default)]
30 pub logo: LogoConfig,
31 #[serde(default = "default_text_color")]
32 pub text_color: Vec<u8>,
33 #[serde(default = "default_text_color_header")]
34 pub text_color_header: Option<Vec<u8>>,
35 #[serde(default = "default_disabled_entries")]
36 pub disabled_entries: Vec<String>,
37}
38
39fn default_language() -> String {
40 "auto".to_owned()
41}
42
43fn default_text_color() -> Vec<u8> {
44 vec![255, 255, 255]
45}
46
47fn default_text_color_header() -> Option<Vec<u8>> {
48 None
49}
50
51fn default_disabled_entries() -> Vec<String> {
52 vec![
53 "battery".to_owned(),
54 "public-ip".to_owned(),
55 "cpu-usage".to_owned(),
56 "network".to_owned(),
57 "wm".to_owned(),
58 ]
59}