rm_config/main_config/
torrents_tab.rs

1use rm_shared::header::Header;
2use serde::Deserialize;
3
4#[derive(Deserialize)]
5pub struct TorrentsTab {
6    #[serde(default = "default_headers")]
7    pub headers: Vec<Header>,
8    #[serde(default = "default_sort")]
9    pub default_sort: Header,
10    #[serde(default = "default_true")]
11    pub default_sort_reverse: bool,
12    #[serde(default = "default_true")]
13    pub category_icon_insert_into_name: bool,
14}
15
16fn default_true() -> bool {
17    true
18}
19
20fn default_sort() -> Header {
21    Header::AddedDate
22}
23
24fn default_headers() -> Vec<Header> {
25    vec![
26        Header::Name,
27        Header::SizeWhenDone,
28        Header::Progress,
29        Header::Eta,
30        Header::DownloadRate,
31        Header::UploadRate,
32    ]
33}
34
35impl Default for TorrentsTab {
36    fn default() -> Self {
37        Self {
38            headers: default_headers(),
39            default_sort: default_sort(),
40            default_sort_reverse: default_true(),
41            category_icon_insert_into_name: default_true(),
42        }
43    }
44}