Skip to main content

x12_types/v005010/segment/
m.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5/// MEA - Measurements
6#[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    /// 737 - Measurement Reference ID Code
20    #[serde(rename = "01")]
21    pub _01: Option<crate::v005010::element::E737>,
22    /// 738 - Measurement Qualifier
23    #[serde(rename = "02")]
24    pub _02: Option<crate::v005010::element::E738>,
25    /// 739 - Measurement Value
26    #[serde(rename = "03")]
27    pub _03: Option<crate::v005010::element::E739>,
28    /// C001 - Composite Unit of Measure (kept as raw text for now)
29    #[serde(rename = "04")]
30    pub _04: Option<String>,
31    /// 740 - Range Minimum
32    #[serde(rename = "05")]
33    pub _05: Option<crate::v005010::element::E740>,
34    /// 741 - Range Maximum
35    #[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/// MIA - Medicare Inpatient Adjudication
52#[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/// MOA - Medicare Outpatient Adjudication
116#[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/// MSG - Message Text
150#[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/// MPI - Military Personnel Information
163#[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/// MSI - Multi-stop Shipment Information
184///
185/// To indicate whether a shipment is part of a multi-stop movement and its stop sequence
186///
187/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
188/// ----|----|-------|--------|----|------|-------
189/// 01 | 1073 | Yes/No Condition or Response Code | 1 | M | ID | 1/1
190/// 02 | 165 | Stop Sequence Number | 1 | O | N0 | 1/3
191#[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/// MTX - Text
202#[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    /// 363 - Note Reference Code
216    #[serde(rename = "01")]
217    pub _01: Option<crate::v005010::element::E363>,
218    /// 1551 - Textual Data
219    #[serde(rename = "02")]
220    pub _02: Option<String>,
221    /// 1551 - Textual Data
222    #[serde(rename = "03")]
223    pub _03: Option<String>,
224    /// 934 - Printer Carriage Control Code
225    #[serde(rename = "04")]
226    pub _04: Option<String>,
227    /// 1470 - Number
228    #[serde(rename = "05")]
229    pub _05: Option<String>,
230    /// 819 - Language Code
231    #[serde(rename = "06")]
232    pub _06: Option<String>,
233}
234
235/// MAN - Marks and Numbers Information
236#[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    /// 88 - Marks and Numbers Qualifier
250    #[serde(rename = "01")]
251    pub _01: crate::v005010::element::E88,
252    /// 87 - Marks and Numbers
253    #[serde(rename = "02")]
254    pub _02: String,
255    /// 87 - Marks and Numbers
256    #[serde(rename = "03")]
257    pub _03: Option<String>,
258    /// 88 - Marks and Numbers Qualifier
259    #[serde(rename = "04")]
260    pub _04: Option<crate::v005010::element::E88>,
261    /// 87 - Marks and Numbers
262    #[serde(rename = "05")]
263    pub _05: Option<String>,
264    /// 87 - Marks and Numbers
265    #[serde(rename = "06")]
266    pub _06: Option<String>,
267}
268
269/// M2 - Sales/Delivery Terms
270///
271/// To specify the salesperson's terms and delivery conditions
272///
273/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
274/// ----|----|-------|--------|----|------|-------
275/// 01 | 139 | Sales Terms Code | 1 | M | ID | 2/2
276/// 02 | 138 | Sales Reference Number | 1 | O | AN | 4/6
277/// 03 | 137 | Sales Reference Date | 1 | O | DT | 8/8
278/// 04 | 335 | Transportation Terms Code | 1 | O | ID | 3/3
279/// 05 | 136 | Sales Comment | 1 | O | AN | 2/30
280/// 06 | 32 | Delivery Date | 1 | O | DT | 8/8
281/// 07 | 309 | Location Qualifier | 1 | X | ID | 1/2
282/// 08 | 310 | Location Identifier | 1 | X | AN | 1/30
283#[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/// M7A - Seal Number Replacement
306///
307/// To replace or augment seal numbers reported in a previous segment or transaction
308///
309/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
310/// ----|----|-------|--------|----|------|-------
311/// 01 | 225 | Seal Number | 1 | M | AN | 2/15
312/// 02 | 225 | Seal Number | 1 | M | AN | 2/15
313/// 03 | 373 | Date | 1 | O | DT | 8/8
314/// 04 | 98 | Entity Identifier Code | 1 | X | ID | 2/3
315/// 05 | 93 | Name | 1 | X | AN | 1/60
316/// 06 | 352 | Description | 1 | O | AN | 1/80
317#[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/// M7 - Seal Numbers
336///
337/// To record seal numbers used and the organization that applied the seals
338///
339/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
340/// ----|----|-------|--------|----|------|-------
341/// 01 | 225 | Seal Number | 1 | M | AN | 2/15
342/// 02 | 225 | Seal Number | 1 | O | AN | 2/15
343/// 03 | 225 | Seal Number | 1 | O | AN | 2/15
344/// 04 | 225 | Seal Number | 1 | O | AN | 2/15
345/// 05 | 98 | Entity Identifier Code | 1 | O | ID | 2/3
346#[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/// MS1 - Equipment, Shipment, or Real Property Location
363///
364/// To specify the location of a piece of equipment, a shipment, or real property in terms of city and state or longitude and latitude
365///
366/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
367/// ----|----|-------|--------|----|------|-------
368/// 01 | 19 | City Name | 1 | X | AN | 2/30
369/// 02 | 156 | State or Province Code | 1 | X | ID | 2/2
370/// 03 | 26 | Country Code | 1 | X | ID | 2/3
371/// 04 | 1654 | Longitude Code | 1 | X/Z | ID | 7/7
372/// 05 | 1655 | Latitude Code | 1 | X/Z | ID | 7/7
373/// 06 | 1280 | Direction Identifier Code NEW | 1 | O/Z | ID | 1/1
374/// 07 | 1280 | Direction Identifier Code NEW | 1 | O/Z | ID | 1/1
375#[derive(
376    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
377)]
378pub struct MS1 {
379    /// 19 - City Name
380    ///
381    /// Free-form text for city name
382    /// - TYPE=AN
383    /// - MIN=2
384    /// - MAX=30
385    #[serde(rename = "01")]
386    pub _01: Option<String>,
387    #[serde(rename = "02")]
388    pub _02: Option<String>,
389    /// 26 - Country Code
390    ///
391    /// Code identifying the country
392    /// - TYPE=ID
393    /// - MIN=2
394    /// - MAX=3
395    #[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/// MS2 - Equipment or Container Owner and Type
408///
409/// To specify the owner, the identification number assigned by that owner, and the type of equipment
410///
411/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
412/// ----|----|-------|--------|----|------|-------
413/// 01 | 140 | Standard Carrier Alpha Code | 1 | X | ID | 2/4
414/// 02 | 207 | Equipment Number | 1 | X | AN | 1/10
415/// 03 | 40 | Equipment Description Code | 1 | O | ID | 2/2
416/// 04 | 761 | Equipment Number Check Digit | 1 | O | N0 | 1/1
417#[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/// MS3 - Interline Information
432///
433/// To identify the interline carrier and relevant data
434///
435/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
436/// ----|----|-------|--------|----|------|-------
437/// 01 | 140 | Standard Carrier Alpha Code | 1 | M/Z | ID | 2/4
438/// 02 | 133 | Routing Sequence Code | 1 | M | ID | 1/2
439/// 03 | 19 | City Name | 1 | X/Z | AN | 2/30
440/// 04 | 91 | Transportation Method/Type Code | 1 | O | ID | 1/2
441/// 05 | 156 | State or Province Code NEW | 1 | O | ID | 2/2
442#[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    /// 19 - City Name
451    ///
452    /// Free-form text for city name
453    /// - TYPE=AN
454    /// - MIN=2
455    /// - MAX=30
456    #[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/// M11 - Manifest Bill of Lading Details
465///
466/// To transmit bill of lading detail for a manifest
467#[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/// M12 - In-bond Identifying Information
522///
523/// To transmit in-bond and customs entry information
524#[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/// M13 - Manifest Amendment Details
553///
554/// To amend a manifest bill of lading
555#[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/// M15 - Customs Events Advisory Details
586///
587/// To transmit customs-related event details such as conveyance arrivals/departures and custodial liability transfers
588#[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/// M10 - Manifest Identifying Information
629///
630/// To transmit manifest identifying information for a conveyance
631///
632/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
633/// ----|----|-------|--------|----|------|-------
634/// 01 | 140 | Standard Carrier Alpha Code | 1 | M | ID | 2/4
635/// 02 | 91 | Transportation Method/Type Code | 1 | M | ID | 1/2
636/// 03 | 26 | Country Code | 1 | M | ID | 2/3
637/// 04 | 597 | Vessel Code | 1 | X | ID | 1/8
638/// 05 | 182 | Vessel Name | 1 | X | AN | 2/28
639/// 06 | 55 | Flight/Voyage Number | 1 | M | AN | 2/10
640/// 07 | 127 | Reference Identification | 1 | O | AN | 1/50
641/// 08 | 380 | Quantity | 1 | O | R | 1/15
642/// 09 | 256 | Manifest Type Code | 1 | O | ID | 1/1
643/// 10 | 897 | Vessel Code Qualifier | 1 | X | ID | 1/1
644/// 11 | 1073 | Yes/No Condition or Response Code | 1 | O | ID | 1/1
645/// 12 | 127 | Reference Identification | 1 | O | AN | 1/50
646/// 13 | 353 | Transaction Set Purpose Code | 1 | O | ID | 2/2
647/// 14 | 346 | Application Type | 1 | O | ID | 2/2
648#[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/// M0 - Letter of Credit Reference
683///
684/// To transmit letter of credit details
685///
686/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
687/// ----|----|-------|--------|----|------|-------
688/// 01 | 250 | Letter of Credit Number | M |  | AN 2/40
689/// 02 | 373 | Date | O |  | DT 8/8
690/// 03 | 373 | Date | O |  | DT 8/8
691/// 04 | 373 | Date | O |  | DT 8/8
692#[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/// M1 - Insurance
707///
708/// To specify details related to insurance
709///
710/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
711/// ----|----|-------|--------|----|------|-------
712/// 01 | 26 | Country Code | 1 | M/Z | ID | 2/3
713/// 02 | 14 | Carriage Value | 1 | O | N0 | 2/8
714/// 03 | 74 | Declared Value | 1 | O | N2 | 2/12
715/// 04 | 122 | Rate/Value Qualifier | 1 | O | ID | 2/2
716/// 05 | 98 | Entity Identifier Code | 1 | O/Z | ID | 2/3
717/// 06 | 61 | Free-Form Message | 1 | O/Z | AN | 1/30
718/// 07 | 122 | Rate/Value Qualifier | 1 | X | ID | 2/2
719/// 08 | 782 | Monetary Amount | 1 | X | R | 1/18
720/// 09 | 1004 | Percent Qualifier | 1 | X | ID | 1/2
721/// 10 | 954 | Percent | 1 | X | R | 1/10
722/// 11 | 1004 | Percent Qualifier | 1 | X | ID | 1/2
723/// 12 | 954 | Percent | 1 | X | R | 1/10
724#[derive(
725    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
726)]
727pub struct M1 {
728    /// 26 - Country Code
729    ///
730    /// Code identifying the country
731    /// - TYPE=ID
732    /// - MIN=2
733    /// - MAX=3
734    #[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/// MIT - Message Identification
761///
762/// To carry message identification data
763#[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/// M3 - Release
778#[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}