Files
tuliprox/shared/src/model/processing_order.rs
T
2025-06-19 16:37:37 +02:00

41 lines
1.1 KiB
Rust

use std::fmt::Display;
use enum_iterator::Sequence;
#[derive(Debug, Copy, Clone, serde::Serialize, serde::Deserialize, Sequence, PartialEq, Eq, Default)]
pub enum ProcessingOrder {
#[serde(rename = "frm")]
#[default]
Frm,
#[serde(rename = "fmr")]
Fmr,
#[serde(rename = "rfm")]
Rfm,
#[serde(rename = "rmf")]
Rmf,
#[serde(rename = "mfr")]
Mfr,
#[serde(rename = "mrf")]
Mrf,
}
impl ProcessingOrder {
const FRM: &'static str = "filter, rename, map";
const FMR: &'static str = "filter, map, rename";
const RFM: &'static str = "rename, filter, map";
const RMF: &'static str = "rename, map, filter";
const MFR: &'static str = "map, filter, rename";
const MRF: &'static str = "map, rename, filter";
}
impl Display for ProcessingOrder {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{}", match *self {
Self::Frm => Self::FRM,
Self::Fmr => Self::FMR,
Self::Rfm => Self::RFM,
Self::Rmf => Self::RMF,
Self::Mfr => Self::MFR,
Self::Mrf => Self::MRF,
})
}
}