37 lines
943 B
Rust
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,
|
|
}
|
|
}
|
|
}
|