zugferd_code_lists/zugferd_2_3_2/
hybriddocument.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 HybridDocument {
6 TheHybridDocumentContainsAnInvoiceOrCreditNote,
10 TheHybridDocumentContainsAnOrder,
14 TheHybridDocumentContainsAnOrderResponse,
18 ThyHybridDocumentContainsAnOrderChange,
22}
23
24impl crate::Code for HybridDocument {
25 fn code(self) -> &'static str {
26 match self {
27 HybridDocument::TheHybridDocumentContainsAnInvoiceOrCreditNote => "INVOICE",
28 HybridDocument::TheHybridDocumentContainsAnOrder => "ORDER",
29 HybridDocument::TheHybridDocumentContainsAnOrderResponse => "ORDER_RESPONSE",
30 HybridDocument::ThyHybridDocumentContainsAnOrderChange => "ORDER_CHANGE",
31 }
32 }
33}
34
35impl crate::Description for HybridDocument {
36 fn description(self) -> &'static str {
37 match self {
38 HybridDocument::TheHybridDocumentContainsAnInvoiceOrCreditNote => {
39 "The hybrid document contains an invoice or credit note"
40 }
41 HybridDocument::TheHybridDocumentContainsAnOrder => {
42 "The hybrid document contains an order"
43 }
44 HybridDocument::TheHybridDocumentContainsAnOrderResponse => {
45 "The hybrid document contains an order response"
46 }
47 HybridDocument::ThyHybridDocumentContainsAnOrderChange => {
48 "Thy hybrid document contains an order change"
49 }
50 }
51 }
52}
53
54impl crate::FromCode for HybridDocument {
55 fn from_code(code: &str) -> Option<Self>
56 where
57 Self: Sized,
58 {
59 match code {
60 "INVOICE" => Some(HybridDocument::TheHybridDocumentContainsAnInvoiceOrCreditNote),
61 "ORDER" => Some(HybridDocument::TheHybridDocumentContainsAnOrder),
62 "ORDER_RESPONSE" => Some(HybridDocument::TheHybridDocumentContainsAnOrderResponse),
63 "ORDER_CHANGE" => Some(HybridDocument::ThyHybridDocumentContainsAnOrderChange),
64 _ => None,
65 }
66 }
67}