zugferd_code_lists/zugferd_2_3_2/
hybridversion.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 HybridVersion {
7 TheHybridDocumentIsAFacturX10CompliantDocument,
11 TheHybridDocumentIsAZugferd1p0CompliantDocument,
15 TheHybridDocumentIsAZugferd2p0CompliantDocument,
19 TheHybridDocumentIsAZugferd2p1CompliantDocument,
23 TheHybridDocumentIsAZugferd2p2CompliantDocument,
27}
28
29impl crate::Code for HybridVersion {
30 fn code(self) -> &'static str {
31 match self {
32 HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument => "1.0",
33 HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument => "1p0",
34 HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument => "2p0",
35 HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument => "2p1",
36 HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument => "2p2",
37 }
38 }
39}
40
41impl crate::Description for HybridVersion {
42 fn description(self) -> &'static str {
43 match self {
44 HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument => {
45 "The hybrid document is a Factur-X 1.0* compliant document"
46 }
47 HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument => {
48 "The hybrid document is a ZUGFeRD 1p0 compliant document"
49 }
50 HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument => {
51 "The hybrid document is a ZUGFeRD 2p0 compliant document"
52 }
53 HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument => {
54 "The hybrid document is a ZUGFeRD 2p1 compliant document"
55 }
56 HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument => {
57 "The hybrid document is a ZUGFeRD 2p2 compliant document"
58 }
59 }
60 }
61}
62
63impl crate::FromCode for HybridVersion {
64 fn from_code(code: &str) -> Option<Self>
65 where
66 Self: Sized,
67 {
68 match code {
69 "1.0" => Some(HybridVersion::TheHybridDocumentIsAFacturX10CompliantDocument),
70 "1p0" => Some(HybridVersion::TheHybridDocumentIsAZugferd1p0CompliantDocument),
71 "2p0" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p0CompliantDocument),
72 "2p1" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p1CompliantDocument),
73 "2p2" => Some(HybridVersion::TheHybridDocumentIsAZugferd2p2CompliantDocument),
74 _ => None,
75 }
76 }
77}