1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
3pub enum Barcode1DKind {
4 Ean13,
6 UpcA,
8 Interleaved2of5,
10 Code93,
12}
13
14#[derive(Debug, Clone, Copy, PartialEq)]
16pub enum Justification {
17 L,
19 C,
21 R,
23 J,
25}
26
27impl From<char> for Justification {
28 fn from(value: char) -> Self {
29 match value {
30 'L' => Justification::L,
31 'C' => Justification::C,
32 'R' => Justification::R,
33 'J' => Justification::J,
34 _ => {
35 #[cfg(feature = "tracing")]
36 tracing::debug!(
37 target: crate::TARGET,
38 "{} is not a valid Justification value, using L as default",
39 value
40 );
41 Justification::L
42 }
43 }
44 }
45}
46
47impl From<Justification> for char {
48 fn from(value: Justification) -> Self {
49 match value {
50 Justification::L => 'L',
51 Justification::C => 'C',
52 Justification::R => 'R',
53 Justification::J => 'J',
54 }
55 }
56}
57
58impl From<Justification> for String {
59 fn from(value: Justification) -> Self {
60 let c: char = value.into();
61 c.to_string()
62 }
63}
64
65#[derive(Debug, Clone, Copy, PartialEq)]
67pub enum YesNo {
68 Y,
70 N,
72}
73
74impl From<char> for YesNo {
75 fn from(value: char) -> Self {
76 match value {
77 'Y' => YesNo::Y,
78 'N' => YesNo::N,
79 _ => {
80 #[cfg(feature = "tracing")]
81 tracing::debug!(
82 target: crate::TARGET,
83 "{} is not a valid YesNo value, using N as default",
84 value
85 );
86 YesNo::N
87 }
88 }
89 }
90}
91
92impl From<YesNo> for char {
93 fn from(value: YesNo) -> Self {
94 match value {
95 YesNo::Y => 'Y',
96 YesNo::N => 'N',
97 }
98 }
99}
100
101impl From<bool> for YesNo {
102 fn from(value: bool) -> Self {
103 if value { YesNo::Y } else { YesNo::N }
104 }
105}
106
107impl From<YesNo> for bool {
108 fn from(value: YesNo) -> Self {
109 match value {
110 YesNo::Y => true,
111 YesNo::N => false,
112 }
113 }
114}