ferrite_navigation/
config.rs1use 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}