Skip to main content

dis_rs/v7/
builder.rs

1use crate::enumerations::{
2    ActiveInterrogationIndicator, CoupledExtensionIndicator, DetonationTypeIndicator,
3    FireTypeIndicator, IffSimulationMode, IntercomAttachedIndicator, LvcIndicator,
4    RadioAttachedIndicator, TransferredEntityIndicator,
5};
6use crate::v7::model::PduStatus;
7
8pub fn build_pdu_status_cei_lvc_tei(
9    cei: CoupledExtensionIndicator,
10    lvc: LvcIndicator,
11    tei: TransferredEntityIndicator,
12) -> PduStatus {
13    PduStatus {
14        transferred_entity_indicator: Some(tei),
15        lvc_indicator: Some(lvc),
16        coupled_extension_indicator: Some(cei),
17        fire_type_indicator: None,
18        detonation_type_indicator: None,
19        radio_attached_indicator: None,
20        intercom_attached_indicator: None,
21        iff_simulation_mode: None,
22        active_interrogation_indicator: None,
23    }
24}
25
26pub fn build_pdu_status_fti_cei_lvc(
27    fti: FireTypeIndicator,
28    cei: CoupledExtensionIndicator,
29    lvc: LvcIndicator,
30) -> PduStatus {
31    PduStatus {
32        transferred_entity_indicator: None,
33        lvc_indicator: Some(lvc),
34        coupled_extension_indicator: Some(cei),
35        fire_type_indicator: Some(fti),
36        detonation_type_indicator: None,
37        radio_attached_indicator: None,
38        intercom_attached_indicator: None,
39        iff_simulation_mode: None,
40        active_interrogation_indicator: None,
41    }
42}
43
44pub fn build_pdu_status_dti_cei_lvc(
45    dti: DetonationTypeIndicator,
46    cei: CoupledExtensionIndicator,
47    lvc: LvcIndicator,
48) -> PduStatus {
49    PduStatus {
50        transferred_entity_indicator: None,
51        lvc_indicator: Some(lvc),
52        coupled_extension_indicator: Some(cei),
53        fire_type_indicator: None,
54        detonation_type_indicator: Some(dti),
55        radio_attached_indicator: None,
56        intercom_attached_indicator: None,
57        iff_simulation_mode: None,
58        active_interrogation_indicator: None,
59    }
60}
61
62pub fn build_pdu_status_cei_lvc(cei: CoupledExtensionIndicator, lvc: LvcIndicator) -> PduStatus {
63    PduStatus {
64        transferred_entity_indicator: None,
65        lvc_indicator: Some(lvc),
66        coupled_extension_indicator: Some(cei),
67        fire_type_indicator: None,
68        detonation_type_indicator: None,
69        radio_attached_indicator: None,
70        intercom_attached_indicator: None,
71        iff_simulation_mode: None,
72        active_interrogation_indicator: None,
73    }
74}
75
76pub fn build_pdu_status_rai_cei_lvc_tei(
77    rai: RadioAttachedIndicator,
78    cei: CoupledExtensionIndicator,
79    lvc: LvcIndicator,
80    tei: TransferredEntityIndicator,
81) -> PduStatus {
82    PduStatus {
83        transferred_entity_indicator: Some(tei),
84        lvc_indicator: Some(lvc),
85        coupled_extension_indicator: Some(cei),
86        fire_type_indicator: None,
87        detonation_type_indicator: None,
88        radio_attached_indicator: Some(rai),
89        intercom_attached_indicator: None,
90        iff_simulation_mode: None,
91        active_interrogation_indicator: None,
92    }
93}
94
95pub fn build_pdu_status_aii_ism_cei_lvc_tei(
96    aii: ActiveInterrogationIndicator,
97    ism: IffSimulationMode,
98    cei: CoupledExtensionIndicator,
99    lvc: LvcIndicator,
100    tei: TransferredEntityIndicator,
101) -> PduStatus {
102    PduStatus {
103        transferred_entity_indicator: Some(tei),
104        lvc_indicator: Some(lvc),
105        coupled_extension_indicator: Some(cei),
106        fire_type_indicator: None,
107        detonation_type_indicator: None,
108        radio_attached_indicator: None,
109        intercom_attached_indicator: None,
110        iff_simulation_mode: Some(ism),
111        active_interrogation_indicator: Some(aii),
112    }
113}
114
115pub fn build_pdu_status_iai_cei_lvc_tei(
116    iai: IntercomAttachedIndicator,
117    cei: CoupledExtensionIndicator,
118    lvc: LvcIndicator,
119    tei: TransferredEntityIndicator,
120) -> PduStatus {
121    PduStatus {
122        transferred_entity_indicator: Some(tei),
123        lvc_indicator: Some(lvc),
124        coupled_extension_indicator: Some(cei),
125        fire_type_indicator: None,
126        detonation_type_indicator: None,
127        radio_attached_indicator: None,
128        intercom_attached_indicator: Some(iai),
129        iff_simulation_mode: None,
130        active_interrogation_indicator: None,
131    }
132}
133
134pub fn build_pdu_status_lvc(lvc: LvcIndicator) -> PduStatus {
135    PduStatus {
136        transferred_entity_indicator: None,
137        lvc_indicator: Some(lvc),
138        coupled_extension_indicator: None,
139        fire_type_indicator: None,
140        detonation_type_indicator: None,
141        radio_attached_indicator: None,
142        intercom_attached_indicator: None,
143        iff_simulation_mode: None,
144        active_interrogation_indicator: None,
145    }
146}