Files
komp_ac/komp-app/src/navigation.rs
2026-08-30 07:49:19 +02:00

37 lines
943 B
Rust

use common::proto::komp_ac::tables_data::RowNavigationMode;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, Deserialize, Serialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum UnfilteredNavigationMode {
Position,
#[default]
Id,
}
impl UnfilteredNavigationMode {
pub fn parse(value: &str) -> Option<Self> {
match value {
"id" => Some(Self::Id),
"position" => Some(Self::Position),
_ => None,
}
}
pub fn as_str(self) -> &'static str {
match self {
Self::Id => "id",
Self::Position => "position",
}
}
}
impl From<UnfilteredNavigationMode> for RowNavigationMode {
fn from(value: UnfilteredNavigationMode) -> Self {
match value {
UnfilteredNavigationMode::Id => Self::Id,
UnfilteredNavigationMode::Position => Self::Position,
}
}
}