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 { sort_order: SortOrder::default(), reverse_order: false }
27    }
28}
29
30impl NavigationConfig {
31    pub fn validate(&self) -> Result<()> {
32        Ok(())
33    }
34
35    pub fn with_sort_order(mut self, order: SortOrder) -> Self {
36        self.sort_order = order;
37        self
38    }
39
40    pub fn with_reverse(mut self, reverse: bool) -> Self {
41        self.reverse_order = reverse;
42        self
43    }
44}