zugferd_code_lists/zugferd_2_3_2/
filename.rs1#![allow(non_camel_case_types)]
2
3#[cfg_attr(feature = "specta", derive(specta::Type))]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
6pub enum Filename {
7 TheHybridDocumentContainsAFacturXZugferdXmlFile,
11 TheHybridDocumentContainsAXrechnungXmlFile,
15 TheHybridDocumentContainsAnOrderXXmlFile,
17}
18
19impl crate::Code for Filename {
20 fn code(self) -> &'static str {
21 match self {
22 Filename::TheHybridDocumentContainsAFacturXZugferdXmlFile => "factur-x.xml",
23 Filename::TheHybridDocumentContainsAXrechnungXmlFile => "xrechnung.xml",
24 Filename::TheHybridDocumentContainsAnOrderXXmlFile => "order-x.xml",
25 }
26 }
27}
28
29impl crate::Description for Filename {
30 fn description(self) -> &'static str {
31 match self {
32 Filename::TheHybridDocumentContainsAFacturXZugferdXmlFile => {
33 "The hybrid document contains a Factur-X / ZUGFeRD XML-file"
34 }
35 Filename::TheHybridDocumentContainsAXrechnungXmlFile => {
36 "The hybrid document contains a XRechnung XML file"
37 }
38 Filename::TheHybridDocumentContainsAnOrderXXmlFile => {
39 "The hybrid document contains an Order-X XML file"
40 }
41 }
42 }
43}
44
45impl crate::FromCode for Filename {
46 fn from_code(code: &str) -> Option<Self>
47 where
48 Self: Sized,
49 {
50 match code {
51 "factur-x.xml" => Some(Filename::TheHybridDocumentContainsAFacturXZugferdXmlFile),
52 "xrechnung.xml" => Some(Filename::TheHybridDocumentContainsAXrechnungXmlFile),
53 "order-x.xml" => Some(Filename::TheHybridDocumentContainsAnOrderXXmlFile),
54 _ => None,
55 }
56 }
57}