zugferd_code_lists/zugferd_2_3_3/
hybridversion.rs1#![allow(non_camel_case_types)]
2
3#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
4pub enum HybridVersion {
5 TheHybridDocumentIsAFacturX10CompliantDocument,
9 TheHybridDocumentIsAZugferd1p0CompliantDocument,
13 TheHybridDocumentIsAZugferd2p0CompliantDocument,
17 TheHybridDocumentIsAZugferd2p1CompliantDocument,
21 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}