ferrite_navigation/
config.rs

1use crate::error::Result;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5pub enum SortOrder {
6    #[serde(rename = "name")]
7    ByName,
8    #[serde(rename = "modified")]
9    ByModified,
10}
11
12impl Default for SortOrder {
13    fn default() -> Self {
14        Self::ByName
15    }
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct NavigationConfig {
20    pub sort_order:    SortOrder,
21    pub reverse_order: bool,
22}
23
24impl Default for NavigationConfig {
25    fn default() -> Self {
26        Self {
27            sort_order: SortOrder::default(), reverse_order: false
28        }
29    }
30}
31
32impl NavigationConfig {
33    pub fn validate(&self) -> Result<()> {
34        Ok(())
35    }
36
37    pub fn with_sort_order(mut self, order: SortOrder) -> Self {
38        self.sort_order = order;
39        self
40    }
41
42    pub fn with_reverse(mut self, reverse: bool) -> Self {
43        self.reverse_order = reverse;
44        self
45    }
46}