1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5#[derive(
18 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
19)]
20pub struct HAD {
21 #[serde(rename = "01")]
22 pub _01: crate::v005010::element::E546,
23 #[serde(rename = "02")]
24 pub _02: Option<crate::v005010::element::E1073>,
25 #[serde(rename = "03")]
26 pub _03: Option<crate::v005010::element::E1073>,
27 #[serde(rename = "04")]
28 pub _04: Option<crate::v005010::element::E1073>,
29 #[serde(rename = "05")]
30 pub _05: Option<String>,
31 #[serde(rename = "06")]
32 pub _06: Option<String>,
33}
34
35#[derive(
48 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
49)]
50pub struct HPL {
51 #[serde(rename = "01")]
52 pub _01: Option<String>,
53 #[serde(rename = "02")]
54 pub _02: Option<String>,
55 #[serde(rename = "03")]
56 pub _03: Option<crate::v005010::element::E546>,
57 #[serde(rename = "04")]
58 pub _04: Option<String>,
59 #[serde(rename = "05")]
60 pub _05: Option<String>,
61 #[serde(rename = "06")]
62 pub _06: Option<crate::v005010::element::E83>,
63}
64
65#[derive(
67 Serialize,
68 Deserialize,
69 Clone,
70 Default,
71 Debug,
72 Validate,
73 PartialEq,
74 Eq,
75 DisplaySegment,
76 ParseSegment,
77)]
78pub struct HCP {
79 #[serde(rename = "01")]
80 pub _01: Option<String>,
81 #[serde(rename = "02")]
82 pub _02: Option<String>,
83 #[serde(rename = "03")]
84 pub _03: Option<String>,
85 #[serde(rename = "04")]
86 pub _04: Option<String>,
87 #[serde(rename = "05")]
88 pub _05: Option<String>,
89 #[serde(rename = "06")]
90 pub _06: Option<String>,
91 #[serde(rename = "07")]
92 pub _07: Option<String>,
93 #[serde(rename = "08")]
94 pub _08: Option<String>,
95 #[serde(rename = "09")]
96 pub _09: Option<String>,
97 #[serde(rename = "10")]
98 pub _10: Option<String>,
99 #[serde(rename = "11")]
100 pub _11: Option<String>,
101 #[serde(rename = "12")]
102 pub _12: Option<String>,
103 #[serde(rename = "13")]
104 pub _13: Option<String>,
105 #[serde(rename = "14")]
106 pub _14: Option<String>,
107 #[serde(rename = "15")]
108 pub _15: Option<String>,
109}
110
111#[derive(
113 Serialize,
114 Deserialize,
115 Clone,
116 Default,
117 Debug,
118 Validate,
119 PartialEq,
120 Eq,
121 DisplaySegment,
122 ParseSegment,
123)]
124pub struct HCR {
125 #[serde(rename = "01")]
126 pub _01: Option<String>,
127 #[serde(rename = "02")]
128 pub _02: Option<String>,
129 #[serde(rename = "03")]
130 pub _03: Option<String>,
131}
132
133#[derive(
135 Serialize,
136 Deserialize,
137 Clone,
138 Default,
139 Debug,
140 Validate,
141 PartialEq,
142 Eq,
143 DisplaySegment,
144 ParseSegment,
145)]
146pub struct HD {
147 #[serde(rename = "01")]
148 pub _01: String,
149 #[serde(rename = "02")]
150 pub _02: Option<String>,
151 #[serde(rename = "03")]
152 pub _03: Option<String>,
153 #[serde(rename = "04")]
154 pub _04: Option<String>,
155 #[serde(rename = "05")]
156 pub _05: Option<String>,
157 #[serde(rename = "06")]
158 pub _06: Option<String>,
159 #[serde(rename = "07")]
160 pub _07: Option<String>,
161 #[serde(rename = "08")]
162 pub _08: Option<String>,
163 #[serde(rename = "09")]
164 pub _09: Option<String>,
165 #[serde(rename = "10")]
166 pub _10: Option<String>,
167 #[serde(rename = "11")]
168 pub _11: Option<String>,
169}
170
171#[derive(
173 Serialize,
174 Deserialize,
175 Clone,
176 Default,
177 Debug,
178 Validate,
179 PartialEq,
180 Eq,
181 DisplaySegment,
182 ParseSegment,
183)]
184pub struct HI {
185 #[serde(rename = "01")]
186 pub _01: String,
187 #[serde(rename = "02")]
188 pub _02: Option<String>,
189 #[serde(rename = "03")]
190 pub _03: Option<String>,
191 #[serde(rename = "04")]
192 pub _04: Option<String>,
193 #[serde(rename = "05")]
194 pub _05: Option<String>,
195 #[serde(rename = "06")]
196 pub _06: Option<String>,
197 #[serde(rename = "07")]
198 pub _07: Option<String>,
199 #[serde(rename = "08")]
200 pub _08: Option<String>,
201 #[serde(rename = "09")]
202 pub _09: Option<String>,
203 #[serde(rename = "10")]
204 pub _10: Option<String>,
205 #[serde(rename = "11")]
206 pub _11: Option<String>,
207 #[serde(rename = "12")]
208 pub _12: Option<String>,
209}
210
211#[derive(
213 Serialize,
214 Deserialize,
215 Clone,
216 Default,
217 Debug,
218 Validate,
219 PartialEq,
220 Eq,
221 DisplaySegment,
222 ParseSegment,
223)]
224pub struct HL {
225 #[serde(rename = "01")]
226 pub _01: String,
227 #[serde(rename = "02")]
228 pub _02: Option<String>,
229 #[serde(rename = "03")]
231 pub _03: crate::v005010::element::E735,
232 #[serde(rename = "04")]
234 pub _04: Option<crate::v005010::element::E736>,
235}
236
237#[derive(
239 Serialize,
240 Deserialize,
241 Clone,
242 Default,
243 Debug,
244 Validate,
245 PartialEq,
246 Eq,
247 DisplaySegment,
248 ParseSegment,
249)]
250pub struct HLH {
251 #[serde(rename = "01")]
252 pub _01: String,
253 #[serde(rename = "02")]
254 pub _02: String,
255 #[serde(rename = "03")]
256 pub _03: Option<String>,
257 #[serde(rename = "04")]
258 pub _04: Option<String>,
259 #[serde(rename = "05")]
260 pub _05: Option<String>,
261 #[serde(rename = "06")]
262 pub _06: Option<String>,
263 #[serde(rename = "07")]
264 pub _07: Option<String>,
265}
266
267#[derive(
269 Serialize,
270 Deserialize,
271 Clone,
272 Default,
273 Debug,
274 Validate,
275 PartialEq,
276 Eq,
277 DisplaySegment,
278 ParseSegment,
279)]
280pub struct HSD {
281 #[serde(rename = "01")]
282 pub _01: Option<String>,
283 #[serde(rename = "02")]
284 pub _02: Option<String>,
285 #[serde(rename = "03")]
286 pub _03: Option<String>,
287 #[serde(rename = "04")]
288 pub _04: Option<String>,
289 #[serde(rename = "05")]
290 pub _05: Option<String>,
291 #[serde(rename = "06")]
292 pub _06: Option<String>,
293 #[serde(rename = "07")]
294 pub _07: Option<String>,
295 #[serde(rename = "08")]
296 pub _08: Option<String>,
297}
298
299#[derive(
315 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
316)]
317pub struct H1 {
318 #[serde(rename = "01")]
319 pub _01: String,
320 #[serde(rename = "02")]
321 pub _02: Option<String>,
322 #[serde(rename = "03")]
323 pub _03: Option<String>,
324 #[serde(rename = "04")]
325 pub _04: Option<String>,
326 #[serde(rename = "05")]
327 pub _05: Option<String>,
328 #[serde(rename = "06")]
329 pub _06: Option<String>,
330 #[serde(rename = "07")]
331 pub _07: Option<crate::v005010::element::E77>,
332 #[serde(rename = "08")]
333 pub _08: Option<String>,
334 #[serde(rename = "09")]
335 pub _09: Option<String>,
336}
337
338#[derive(
347 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
348)]
349pub struct H2 {
350 #[serde(rename = "01")]
351 pub _01: String,
352 #[serde(rename = "02")]
353 pub _02: Option<String>,
354}
355
356#[derive(
370 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
371)]
372pub struct H6 {
373 #[serde(rename = "01")]
374 pub _01: Option<crate::v005010::element::E560>,
375 #[serde(rename = "02")]
376 pub _02: Option<crate::v005010::element::E560>,
377 #[serde(rename = "03")]
378 pub _03: Option<crate::v005010::element::E406>,
379 #[serde(rename = "04")]
380 pub _04: Option<crate::v005010::element::E399>,
381 #[serde(rename = "05")]
382 pub _05: Option<crate::v005010::element::E81>,
383 #[serde(rename = "06")]
384 pub _06: Option<String>,
385 #[serde(rename = "07")]
386 pub _07: Option<crate::v005010::element::E108>,
387}
388
389#[derive(
399 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
400)]
401pub struct H5 {
402 #[serde(rename = "01")]
403 pub _01: crate::v005010::element::E240,
404 #[serde(rename = "02")]
405 pub _02: Option<String>,
406 #[serde(rename = "03")]
407 pub _03: Option<String>,
408}
409
410#[derive(
422 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
423)]
424pub struct H3 {
425 #[serde(rename = "01")]
426 pub _01: Option<String>,
427 #[serde(rename = "02")]
428 pub _02: Option<String>,
429 #[serde(rename = "03")]
430 pub _03: Option<crate::v005010::element::E241>,
431 #[serde(rename = "04")]
432 pub _04: Option<crate::v005010::element::E242>,
433 #[serde(rename = "05")]
434 pub _05: Option<crate::v005010::element::E257>,
435}