1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5#[derive(
7 Serialize,
8 Deserialize,
9 Clone,
10 Default,
11 Debug,
12 Validate,
13 PartialEq,
14 Eq,
15 DisplaySegment,
16 ParseSegment,
17)]
18pub struct MEA {
19 #[serde(rename = "01")]
21 pub _01: Option<crate::v005010::element::E737>,
22 #[serde(rename = "02")]
24 pub _02: Option<crate::v005010::element::E738>,
25 #[serde(rename = "03")]
27 pub _03: Option<crate::v005010::element::E739>,
28 #[serde(rename = "04")]
30 pub _04: Option<String>,
31 #[serde(rename = "05")]
33 pub _05: Option<crate::v005010::element::E740>,
34 #[serde(rename = "06")]
36 pub _06: Option<crate::v005010::element::E741>,
37 #[serde(rename = "07")]
38 pub _07: Option<String>,
39 #[serde(rename = "08")]
40 pub _08: Option<String>,
41 #[serde(rename = "09")]
42 pub _09: Option<String>,
43 #[serde(rename = "10")]
44 pub _10: Option<String>,
45 #[serde(rename = "11")]
46 pub _11: Option<String>,
47 #[serde(rename = "12")]
48 pub _12: Option<String>,
49}
50
51#[derive(
53 Serialize,
54 Deserialize,
55 Clone,
56 Default,
57 Debug,
58 Validate,
59 PartialEq,
60 Eq,
61 DisplaySegment,
62 ParseSegment,
63)]
64pub struct MIA {
65 #[serde(rename = "01")]
66 pub _01: String,
67 #[serde(rename = "02")]
68 pub _02: Option<String>,
69 #[serde(rename = "03")]
70 pub _03: Option<String>,
71 #[serde(rename = "04")]
72 pub _04: Option<String>,
73 #[serde(rename = "05")]
74 pub _05: Option<String>,
75 #[serde(rename = "06")]
76 pub _06: Option<String>,
77 #[serde(rename = "07")]
78 pub _07: Option<String>,
79 #[serde(rename = "08")]
80 pub _08: Option<String>,
81 #[serde(rename = "09")]
82 pub _09: Option<String>,
83 #[serde(rename = "10")]
84 pub _10: Option<String>,
85 #[serde(rename = "11")]
86 pub _11: Option<String>,
87 #[serde(rename = "12")]
88 pub _12: Option<String>,
89 #[serde(rename = "13")]
90 pub _13: Option<String>,
91 #[serde(rename = "14")]
92 pub _14: Option<String>,
93 #[serde(rename = "15")]
94 pub _15: Option<String>,
95 #[serde(rename = "16")]
96 pub _16: Option<String>,
97 #[serde(rename = "17")]
98 pub _17: Option<String>,
99 #[serde(rename = "18")]
100 pub _18: Option<String>,
101 #[serde(rename = "19")]
102 pub _19: Option<String>,
103 #[serde(rename = "20")]
104 pub _20: Option<String>,
105 #[serde(rename = "21")]
106 pub _21: Option<String>,
107 #[serde(rename = "22")]
108 pub _22: Option<String>,
109 #[serde(rename = "23")]
110 pub _23: Option<String>,
111 #[serde(rename = "24")]
112 pub _24: Option<String>,
113}
114
115#[derive(
117 Serialize,
118 Deserialize,
119 Clone,
120 Default,
121 Debug,
122 Validate,
123 PartialEq,
124 Eq,
125 DisplaySegment,
126 ParseSegment,
127)]
128pub struct MOA {
129 #[serde(rename = "01")]
130 pub _01: Option<String>,
131 #[serde(rename = "02")]
132 pub _02: Option<String>,
133 #[serde(rename = "03")]
134 pub _03: Option<String>,
135 #[serde(rename = "04")]
136 pub _04: Option<String>,
137 #[serde(rename = "05")]
138 pub _05: Option<String>,
139 #[serde(rename = "06")]
140 pub _06: Option<String>,
141 #[serde(rename = "07")]
142 pub _07: Option<String>,
143 #[serde(rename = "08")]
144 pub _08: Option<String>,
145 #[serde(rename = "09")]
146 pub _09: Option<String>,
147}
148
149#[derive(
151 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
152)]
153pub struct MSG {
154 #[serde(rename = "01")]
155 pub _01: String,
156 #[serde(rename = "02")]
157 pub _02: Option<String>,
158 #[serde(rename = "03")]
159 pub _03: Option<String>,
160}
161
162#[derive(
164 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
165)]
166pub struct MPI {
167 #[serde(rename = "01")]
168 pub _01: Option<String>,
169 #[serde(rename = "02")]
170 pub _02: Option<String>,
171 #[serde(rename = "03")]
172 pub _03: Option<String>,
173 #[serde(rename = "04")]
174 pub _04: Option<String>,
175 #[serde(rename = "05")]
176 pub _05: Option<String>,
177 #[serde(rename = "06")]
178 pub _06: Option<String>,
179 #[serde(rename = "07")]
180 pub _07: Option<String>,
181}
182
183#[derive(
192 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
193)]
194pub struct MSI {
195 #[serde(rename = "01")]
196 pub _01: crate::v005010::element::E1073,
197 #[serde(rename = "02")]
198 pub _02: Option<crate::v005010::element::E165>,
199}
200
201#[derive(
203 Serialize,
204 Deserialize,
205 Clone,
206 Default,
207 Debug,
208 Validate,
209 PartialEq,
210 Eq,
211 DisplaySegment,
212 ParseSegment,
213)]
214pub struct MTX {
215 #[serde(rename = "01")]
217 pub _01: Option<crate::v005010::element::E363>,
218 #[serde(rename = "02")]
220 pub _02: Option<String>,
221 #[serde(rename = "03")]
223 pub _03: Option<String>,
224 #[serde(rename = "04")]
226 pub _04: Option<String>,
227 #[serde(rename = "05")]
229 pub _05: Option<String>,
230 #[serde(rename = "06")]
232 pub _06: Option<String>,
233}
234
235#[derive(
237 Serialize,
238 Deserialize,
239 Clone,
240 Default,
241 Debug,
242 Validate,
243 PartialEq,
244 Eq,
245 DisplaySegment,
246 ParseSegment,
247)]
248pub struct MAN {
249 #[serde(rename = "01")]
251 pub _01: crate::v005010::element::E88,
252 #[serde(rename = "02")]
254 pub _02: String,
255 #[serde(rename = "03")]
257 pub _03: Option<String>,
258 #[serde(rename = "04")]
260 pub _04: Option<crate::v005010::element::E88>,
261 #[serde(rename = "05")]
263 pub _05: Option<String>,
264 #[serde(rename = "06")]
266 pub _06: Option<String>,
267}
268
269#[derive(
284 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
285)]
286pub struct M2 {
287 #[serde(rename = "01")]
288 pub _01: crate::v005010::element::E139,
289 #[serde(rename = "02")]
290 pub _02: Option<String>,
291 #[serde(rename = "03")]
292 pub _03: Option<crate::v005010::element::E137>,
293 #[serde(rename = "04")]
294 pub _04: Option<crate::v005010::element::E335>,
295 #[serde(rename = "05")]
296 pub _05: Option<String>,
297 #[serde(rename = "06")]
298 pub _06: Option<crate::v005010::element::E32>,
299 #[serde(rename = "07")]
300 pub _07: Option<String>,
301 #[serde(rename = "08")]
302 pub _08: Option<String>,
303}
304
305#[derive(
318 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
319)]
320pub struct M7A {
321 #[serde(rename = "01")]
322 pub _01: String,
323 #[serde(rename = "02")]
324 pub _02: String,
325 #[serde(rename = "03")]
326 pub _03: Option<String>,
327 #[serde(rename = "04")]
328 pub _04: Option<String>,
329 #[serde(rename = "05")]
330 pub _05: Option<String>,
331 #[serde(rename = "06")]
332 pub _06: Option<String>,
333}
334
335#[derive(
347 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
348)]
349pub struct M7 {
350 #[serde(rename = "01")]
351 pub _01: String,
352 #[serde(rename = "02")]
353 pub _02: Option<String>,
354 #[serde(rename = "03")]
355 pub _03: Option<String>,
356 #[serde(rename = "04")]
357 pub _04: Option<String>,
358 #[serde(rename = "05")]
359 pub _05: Option<String>,
360}
361
362#[derive(
376 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
377)]
378pub struct MS1 {
379 #[serde(rename = "01")]
386 pub _01: Option<String>,
387 #[serde(rename = "02")]
388 pub _02: Option<String>,
389 #[serde(rename = "03")]
396 pub _03: Option<String>,
397 #[serde(rename = "04")]
398 pub _04: Option<String>,
399 #[serde(rename = "05")]
400 pub _05: Option<String>,
401 #[serde(rename = "06")]
402 pub _06: Option<crate::v005010::element::E1280>,
403 #[serde(rename = "07")]
404 pub _07: Option<crate::v005010::element::E1280>,
405}
406
407#[derive(
418 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
419)]
420pub struct MS2 {
421 #[serde(rename = "01")]
422 pub _01: Option<String>,
423 #[serde(rename = "02")]
424 pub _02: Option<String>,
425 #[serde(rename = "03")]
426 pub _03: Option<String>,
427 #[serde(rename = "04")]
428 pub _04: Option<crate::v005010::element::E761>,
429}
430
431#[derive(
443 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
444)]
445pub struct MS3 {
446 #[serde(rename = "01")]
447 pub _01: String,
448 #[serde(rename = "02")]
449 pub _02: String,
450 #[serde(rename = "03")]
457 pub _03: Option<String>,
458 #[serde(rename = "04")]
459 pub _04: Option<String>,
460 #[serde(rename = "05")]
461 pub _05: Option<String>,
462}
463
464#[derive(
468 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
469)]
470pub struct M11 {
471 #[serde(rename = "01")]
472 pub _01: String,
473 #[serde(rename = "02")]
474 pub _02: String,
475 #[serde(rename = "03")]
476 pub _03: Option<String>,
477 #[serde(rename = "04")]
478 pub _04: Option<String>,
479 #[serde(rename = "05")]
480 pub _05: Option<String>,
481 #[serde(rename = "06")]
482 pub _06: Option<String>,
483 #[serde(rename = "07")]
484 pub _07: Option<String>,
485 #[serde(rename = "08")]
486 pub _08: Option<String>,
487 #[serde(rename = "09")]
488 pub _09: Option<String>,
489 #[serde(rename = "10")]
490 pub _10: Option<String>,
491 #[serde(rename = "11")]
492 pub _11: Option<String>,
493 #[serde(rename = "12")]
494 pub _12: String,
495 #[serde(rename = "13")]
496 pub _13: Option<String>,
497 #[serde(rename = "14")]
498 pub _14: Option<String>,
499 #[serde(rename = "15")]
500 pub _15: Option<String>,
501 #[serde(rename = "16")]
502 pub _16: Option<String>,
503 #[serde(rename = "17")]
504 pub _17: Option<String>,
505 #[serde(rename = "18")]
506 pub _18: Option<String>,
507 #[serde(rename = "19")]
508 pub _19: Option<String>,
509 #[serde(rename = "20")]
510 pub _20: Option<String>,
511 #[serde(rename = "21")]
512 pub _21: Option<String>,
513 #[serde(rename = "22")]
514 pub _22: Option<String>,
515 #[serde(rename = "23")]
516 pub _23: Option<String>,
517 #[serde(rename = "24")]
518 pub _24: Option<String>,
519}
520
521#[derive(
525 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
526)]
527pub struct M12 {
528 #[serde(rename = "01")]
529 pub _01: String,
530 #[serde(rename = "02")]
531 pub _02: Option<String>,
532 #[serde(rename = "03")]
533 pub _03: Option<String>,
534 #[serde(rename = "04")]
535 pub _04: Option<String>,
536 #[serde(rename = "05")]
537 pub _05: Option<String>,
538 #[serde(rename = "06")]
539 pub _06: Option<String>,
540 #[serde(rename = "07")]
541 pub _07: Option<String>,
542 #[serde(rename = "08")]
543 pub _08: Option<String>,
544 #[serde(rename = "09")]
545 pub _09: Option<String>,
546 #[serde(rename = "10")]
547 pub _10: Option<String>,
548 #[serde(rename = "11")]
549 pub _11: Option<String>,
550}
551
552#[derive(
556 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
557)]
558pub struct M13 {
559 #[serde(rename = "01")]
560 pub _01: String,
561 #[serde(rename = "02")]
562 pub _02: String,
563 #[serde(rename = "03")]
564 pub _03: Option<String>,
565 #[serde(rename = "04")]
566 pub _04: String,
567 #[serde(rename = "05")]
568 pub _05: Option<String>,
569 #[serde(rename = "06")]
570 pub _06: Option<String>,
571 #[serde(rename = "07")]
572 pub _07: Option<String>,
573 #[serde(rename = "08")]
574 pub _08: Option<String>,
575 #[serde(rename = "09")]
576 pub _09: String,
577 #[serde(rename = "10")]
578 pub _10: Option<String>,
579 #[serde(rename = "11")]
580 pub _11: Option<String>,
581 #[serde(rename = "12")]
582 pub _12: Option<String>,
583}
584
585#[derive(
589 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
590)]
591pub struct M15 {
592 #[serde(rename = "01")]
593 pub _01: String,
594 #[serde(rename = "02")]
595 pub _02: String,
596 #[serde(rename = "03")]
597 pub _03: String,
598 #[serde(rename = "04")]
599 pub _04: Option<String>,
600 #[serde(rename = "05")]
601 pub _05: Option<String>,
602 #[serde(rename = "06")]
603 pub _06: String,
604 #[serde(rename = "07")]
605 pub _07: Option<String>,
606 #[serde(rename = "08")]
607 pub _08: Option<String>,
608 #[serde(rename = "09")]
609 pub _09: Option<String>,
610 #[serde(rename = "10")]
611 pub _10: Option<String>,
612 #[serde(rename = "11")]
613 pub _11: Option<String>,
614 #[serde(rename = "12")]
615 pub _12: Option<String>,
616 #[serde(rename = "13")]
617 pub _13: Option<String>,
618 #[serde(rename = "14")]
619 pub _14: Option<String>,
620 #[serde(rename = "15")]
621 pub _15: Option<String>,
622 #[serde(rename = "16")]
623 pub _16: Option<String>,
624 #[serde(rename = "17")]
625 pub _17: Option<String>,
626}
627
628#[derive(
649 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
650)]
651pub struct M10 {
652 #[serde(rename = "01")]
653 pub _01: String,
654 #[serde(rename = "02")]
655 pub _02: String,
656 #[serde(rename = "03")]
657 pub _03: String,
658 #[serde(rename = "04")]
659 pub _04: Option<String>,
660 #[serde(rename = "05")]
661 pub _05: Option<String>,
662 #[serde(rename = "06")]
663 pub _06: String,
664 #[serde(rename = "07")]
665 pub _07: Option<String>,
666 #[serde(rename = "08")]
667 pub _08: Option<String>,
668 #[serde(rename = "09")]
669 pub _09: Option<crate::v005010::element::E256>,
670 #[serde(rename = "10")]
671 pub _10: Option<crate::v005010::element::E897>,
672 #[serde(rename = "11")]
673 pub _11: Option<crate::v005010::element::E1073>,
674 #[serde(rename = "12")]
675 pub _12: Option<String>,
676 #[serde(rename = "13")]
677 pub _13: Option<String>,
678 #[serde(rename = "14")]
679 pub _14: Option<String>,
680}
681
682#[derive(
693 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
694)]
695pub struct M0 {
696 #[serde(rename = "01")]
697 pub _01: String,
698 #[serde(rename = "02")]
699 pub _02: Option<String>,
700 #[serde(rename = "03")]
701 pub _03: Option<String>,
702 #[serde(rename = "04")]
703 pub _04: Option<String>,
704}
705
706#[derive(
725 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
726)]
727pub struct M1 {
728 #[serde(rename = "01")]
735 pub _01: Option<String>,
736 #[serde(rename = "02")]
737 pub _02: Option<String>,
738 #[serde(rename = "03")]
739 pub _03: Option<crate::v005010::element::E74>,
740 #[serde(rename = "04")]
741 pub _04: Option<crate::v005010::element::E122>,
742 #[serde(rename = "05")]
743 pub _05: Option<String>,
744 #[serde(rename = "06")]
745 pub _06: Option<String>,
746 #[serde(rename = "07")]
747 pub _07: Option<crate::v005010::element::E122>,
748 #[serde(rename = "08")]
749 pub _08: Option<crate::v005010::element::E782>,
750 #[serde(rename = "09")]
751 pub _09: Option<crate::v005010::element::E1004>,
752 #[serde(rename = "10")]
753 pub _10: Option<crate::v005010::element::E954>,
754 #[serde(rename = "11")]
755 pub _11: Option<crate::v005010::element::E1004>,
756 #[serde(rename = "12")]
757 pub _12: Option<crate::v005010::element::E954>,
758}
759
760#[derive(
764 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
765)]
766pub struct MIT {
767 #[serde(rename = "01")]
768 pub _01: String,
769 #[serde(rename = "02")]
770 pub _02: Option<String>,
771 #[serde(rename = "03")]
772 pub _03: Option<String>,
773 #[serde(rename = "04")]
774 pub _04: Option<String>,
775}
776
777#[derive(
779 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
780)]
781pub struct M3 {
782 #[serde(rename = "01")]
783 pub _01: String,
784 #[serde(rename = "02")]
785 pub _02: Option<String>,
786 #[serde(rename = "03")]
787 pub _03: Option<String>,
788 #[serde(rename = "04")]
789 pub _04: Option<String>,
790}