use crate::core::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum X12InterchangeQualifier {
#[serde(rename = "01")]
Variant01,
#[serde(rename = "02")]
Variant02,
#[serde(rename = "03")]
Variant03,
#[serde(rename = "04")]
Variant04,
#[serde(rename = "07")]
Variant07,
#[serde(rename = "08")]
Variant08,
#[serde(rename = "09")]
Variant09,
#[serde(rename = "10")]
Variant10,
#[serde(rename = "11")]
Variant11,
#[serde(rename = "12")]
Variant12,
#[serde(rename = "13")]
Variant13,
#[serde(rename = "14")]
Variant14,
#[serde(rename = "15")]
Variant15,
#[serde(rename = "16")]
Variant16,
#[serde(rename = "17")]
Variant17,
#[serde(rename = "18")]
Variant18,
#[serde(rename = "19")]
Variant19,
#[serde(rename = "20")]
Variant20,
#[serde(rename = "21")]
Variant21,
#[serde(rename = "22")]
Variant22,
#[serde(rename = "23")]
Variant23,
#[serde(rename = "24")]
Variant24,
#[serde(rename = "25")]
Variant25,
#[serde(rename = "26")]
Variant26,
#[serde(rename = "27")]
Variant27,
#[serde(rename = "28")]
Variant28,
#[serde(rename = "29")]
Variant29,
#[serde(rename = "30")]
Variant30,
#[serde(rename = "31")]
Variant31,
#[serde(rename = "32")]
Variant32,
#[serde(rename = "33")]
Variant33,
#[serde(rename = "34")]
Variant34,
#[serde(rename = "35")]
Variant35,
#[serde(rename = "36")]
Variant36,
#[serde(rename = "37")]
Variant37,
#[serde(rename = "38")]
Variant38,
#[serde(rename = "AM")]
Am,
#[serde(rename = "NR")]
Nr,
#[serde(rename = "SA")]
Sa,
#[serde(rename = "SN")]
Sn,
#[serde(rename = "ZZ")]
Zz,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for X12InterchangeQualifier {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Variant01 => write!(f, "01"),
Self::Variant02 => write!(f, "02"),
Self::Variant03 => write!(f, "03"),
Self::Variant04 => write!(f, "04"),
Self::Variant07 => write!(f, "07"),
Self::Variant08 => write!(f, "08"),
Self::Variant09 => write!(f, "09"),
Self::Variant10 => write!(f, "10"),
Self::Variant11 => write!(f, "11"),
Self::Variant12 => write!(f, "12"),
Self::Variant13 => write!(f, "13"),
Self::Variant14 => write!(f, "14"),
Self::Variant15 => write!(f, "15"),
Self::Variant16 => write!(f, "16"),
Self::Variant17 => write!(f, "17"),
Self::Variant18 => write!(f, "18"),
Self::Variant19 => write!(f, "19"),
Self::Variant20 => write!(f, "20"),
Self::Variant21 => write!(f, "21"),
Self::Variant22 => write!(f, "22"),
Self::Variant23 => write!(f, "23"),
Self::Variant24 => write!(f, "24"),
Self::Variant25 => write!(f, "25"),
Self::Variant26 => write!(f, "26"),
Self::Variant27 => write!(f, "27"),
Self::Variant28 => write!(f, "28"),
Self::Variant29 => write!(f, "29"),
Self::Variant30 => write!(f, "30"),
Self::Variant31 => write!(f, "31"),
Self::Variant32 => write!(f, "32"),
Self::Variant33 => write!(f, "33"),
Self::Variant34 => write!(f, "34"),
Self::Variant35 => write!(f, "35"),
Self::Variant36 => write!(f, "36"),
Self::Variant37 => write!(f, "37"),
Self::Variant38 => write!(f, "38"),
Self::Am => write!(f, "AM"),
Self::Nr => write!(f, "NR"),
Self::Sa => write!(f, "SA"),
Self::Sn => write!(f, "SN"),
Self::Zz => write!(f, "ZZ"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for X12InterchangeQualifier {
fn default() -> X12InterchangeQualifier {
Self::Variant01
}
}