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 {
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}