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