zugferd_code_lists/zugferd_2_3_3/
hybridversion.rs1#![allow(non_camel_case_types)]
2
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
5pub enum HybridVersion {
6 TheHybridDocumentIsAFacturX10CompliantDocument,
10 TheHybridDocumentIsAZugferd1p0CompliantDocument,
14 TheHybridDocumentIsAZugferd2p0CompliantDocument,
18 TheHybridDocumentIsAZugferd2p1CompliantDocument,
22 TheHybridDocumentIsAZugferd2p2CompliantDocument,
26}
27
28impl crate::Code for HybridVersion {
29 fn code(self) -> &'static str {
30 match self {
31 HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument => "1.0",
32 HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument => "1p0",
33 HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument => "2p0",
34 HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument => "2p1",
35 HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument => "2p2",
36 }
37 }
38}
39
40impl crate::Description for HybridVersion {
41 fn description(self) -> &'static str {
42 match self {
43 HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument => {
44 "The hybrid document is a Factur-X 1.0* compliant document"
45 }
46 HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument => {
47 "The hybrid document is a ZUGFeRD 1p0 compliant document"
48 }
49 HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument => {
50 "The hybrid document is a ZUGFeRD 2p0 compliant document"
51 }
52 HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument => {
53 "The hybrid document is a ZUGFeRD 2p1 compliant document"
54 }
55 HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument => {
56 "The hybrid document is a ZUGFeRD 2p2 compliant document"
57 }
58 }
59 }
60}
61
62impl crate::FromCode for HybridVersion {
63 fn from_code(code: &str) -> Option<Self>
64 where
65 Self: Sized,
66 {
67 match code {
68 "1.0" => Some(HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument),
69 "1p0" => Some(HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument),
70 "2p0" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument),
71 "2p1" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument),
72 "2p2" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument),
73 _ => None,
74 }
75 }
76}