zugferd_code_lists/zugferd_2_3_3/
hybridversion.rs

1#![allow(non_camel_case_types)]
2
3#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
4pub enum HybridVersion {
5    /// The hybrid document is a Factur-X 1.0* compliant document
6    ///
7    /// Default value for current specification
8    TheHybridDocumentIsAFacturX10CompliantDocument,
9    /// The hybrid document is a ZUGFeRD 1p0 compliant document
10    ///
11    /// Legacy use only. A warning is given if used for a document in the validity period of the current specification
12    TheHybridDocumentIsAZugferd1p0CompliantDocument,
13    /// The hybrid document is a ZUGFeRD 2p0 compliant document
14    ///
15    /// Legacy use only. A warning is given if used for a document in the validity period of the current specification
16    TheHybridDocumentIsAZugferd2p0CompliantDocument,
17    /// The hybrid document is a ZUGFeRD 2p1 compliant document
18    ///
19    /// Legacy use only. A warning is given if used for a document in the validity period of the current specification
20    TheHybridDocumentIsAZugferd2p1CompliantDocument,
21    /// The hybrid document is a ZUGFeRD 2p2 compliant document
22    ///
23    /// Legacy use only. A warning is given if used for a document in the validity period of the current specification
24    TheHybridDocumentIsAZugferd2p2CompliantDocument,
25}
26
27impl crate::Code for HybridVersion {
28    fn code(&self) -> &str {
29        match self {
30            HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument => "1.0",
31            HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument => "1p0",
32            HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument => "2p0",
33            HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument => "2p1",
34            HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument => "2p2",
35        }
36    }
37}
38
39impl crate::Description for HybridVersion {
40    fn description(&self) -> &str {
41        match self {
42            HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument => {
43                "The hybrid document is a Factur-X 1.0* compliant document"
44            }
45            HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument => {
46                "The hybrid document is a ZUGFeRD 1p0 compliant document"
47            }
48            HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument => {
49                "The hybrid document is a ZUGFeRD 2p0 compliant document"
50            }
51            HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument => {
52                "The hybrid document is a ZUGFeRD 2p1 compliant document"
53            }
54            HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument => {
55                "The hybrid document is a ZUGFeRD 2p2 compliant document"
56            }
57        }
58    }
59}
60
61impl crate::FromCode for HybridVersion {
62    fn from_code(code: &str) -> Option<Self>
63    where
64        Self: Sized,
65    {
66        match code {
67            "1.0" => Some(HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument),
68            "1p0" => Some(HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument),
69            "2p0" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument),
70            "2p1" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument),
71            "2p2" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument),
72            _ => None,
73        }
74    }
75}