cimstructs/
EquivalentInjection.rs1#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
3pub struct EquivalentInjection {
4 #[serde(flatten)]
5 pub base: super::EquivalentEquipment,
6 #[serde(skip_serializing_if = "Option::is_none")]
8 pub reactive_capability_curve: Option<super::base::MridRef>,
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub max_p: Option<f64>,
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub max_q: Option<f64>,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub min_p: Option<f64>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub min_q: Option<f64>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub p: Option<f64>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub q: Option<f64>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub r: Option<f64>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub r0: Option<f64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub r2: Option<f64>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub regulation_capability: Option<bool>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub regulation_status: Option<bool>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub regulation_target: Option<f64>,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub x: Option<f64>,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub x0: Option<f64>,
51 #[serde(skip_serializing_if = "Option::is_none")]
53 pub x2: Option<f64>,
54}
55impl crate::base::CimElement for EquivalentInjection {
56 fn mrid(&self) -> &str { &self.base.base.base.base.base.id }
57 fn type_name(&self) -> &'static str { "EquivalentInjection" }
58 fn as_any(&self) -> &dyn std::any::Any { self }
59 fn to_json_value(&self) -> serde_json::Value {
60 serde_json::to_value(self).unwrap_or(serde_json::Value::Null)
61 }
62 fn to_block(&self) -> crate::base::RdfBlock {
63 let mut block = self.base.to_block();
64 block.type_name = "EquivalentInjection".to_string();
65 if let Some(ref v) = self.reactive_capability_curve {
66 block.fields.insert("EquivalentInjection.ReactiveCapabilityCurve".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
67 }
68 if let Some(v) = self.max_p {
69 block.fields.insert("EquivalentInjection.maxP".into(), crate::base::FieldValue::Text(v.to_string()));
70 }
71 if let Some(v) = self.max_q {
72 block.fields.insert("EquivalentInjection.maxQ".into(), crate::base::FieldValue::Text(v.to_string()));
73 }
74 if let Some(v) = self.min_p {
75 block.fields.insert("EquivalentInjection.minP".into(), crate::base::FieldValue::Text(v.to_string()));
76 }
77 if let Some(v) = self.min_q {
78 block.fields.insert("EquivalentInjection.minQ".into(), crate::base::FieldValue::Text(v.to_string()));
79 }
80 if let Some(v) = self.p {
81 block.fields.insert("EquivalentInjection.p".into(), crate::base::FieldValue::Text(v.to_string()));
82 }
83 if let Some(v) = self.q {
84 block.fields.insert("EquivalentInjection.q".into(), crate::base::FieldValue::Text(v.to_string()));
85 }
86 if let Some(v) = self.r {
87 block.fields.insert("EquivalentInjection.r".into(), crate::base::FieldValue::Text(v.to_string()));
88 }
89 if let Some(v) = self.r0 {
90 block.fields.insert("EquivalentInjection.r0".into(), crate::base::FieldValue::Text(v.to_string()));
91 }
92 if let Some(v) = self.r2 {
93 block.fields.insert("EquivalentInjection.r2".into(), crate::base::FieldValue::Text(v.to_string()));
94 }
95 if let Some(v) = self.regulation_capability {
96 block.fields.insert("EquivalentInjection.regulationCapability".into(), crate::base::FieldValue::Text(v.to_string()));
97 }
98 if let Some(v) = self.regulation_status {
99 block.fields.insert("EquivalentInjection.regulationStatus".into(), crate::base::FieldValue::Text(v.to_string()));
100 }
101 if let Some(v) = self.regulation_target {
102 block.fields.insert("EquivalentInjection.regulationTarget".into(), crate::base::FieldValue::Text(v.to_string()));
103 }
104 if let Some(v) = self.x {
105 block.fields.insert("EquivalentInjection.x".into(), crate::base::FieldValue::Text(v.to_string()));
106 }
107 if let Some(v) = self.x0 {
108 block.fields.insert("EquivalentInjection.x0".into(), crate::base::FieldValue::Text(v.to_string()));
109 }
110 if let Some(v) = self.x2 {
111 block.fields.insert("EquivalentInjection.x2".into(), crate::base::FieldValue::Text(v.to_string()));
112 }
113 block
114 }
115}
116
117impl EquivalentInjection {
118 pub fn from_block(b: &crate::base::RdfBlock) -> Self {
119 let mut obj = Self::default();
120 obj.base.base.base.base.base.id.clone_from(&b.mrid);
121 for (key, val) in &b.fields {
122 match key.as_str() {
123 "EquivalentInjection.ReactiveCapabilityCurve" => {
124 if let crate::base::FieldValue::Resource(sv) = val {
125 obj.reactive_capability_curve = Some(crate::base::MridRef { mrid: sv.clone() });
126 }
127 }
128 "EquivalentInjection.maxP" => {
129 match val {
130 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.max_p = Some(v); } }
131 crate::base::FieldValue::TextList(svs) => {
132 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.max_p = Some(v); } }
133 }
134 _ => {}
135 }
136 }
137 "EquivalentInjection.maxQ" => {
138 match val {
139 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.max_q = Some(v); } }
140 crate::base::FieldValue::TextList(svs) => {
141 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.max_q = Some(v); } }
142 }
143 _ => {}
144 }
145 }
146 "EquivalentInjection.minP" => {
147 match val {
148 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.min_p = Some(v); } }
149 crate::base::FieldValue::TextList(svs) => {
150 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.min_p = Some(v); } }
151 }
152 _ => {}
153 }
154 }
155 "EquivalentInjection.minQ" => {
156 match val {
157 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.min_q = Some(v); } }
158 crate::base::FieldValue::TextList(svs) => {
159 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.min_q = Some(v); } }
160 }
161 _ => {}
162 }
163 }
164 "EquivalentInjection.p" => {
165 match val {
166 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.p = Some(v); } }
167 crate::base::FieldValue::TextList(svs) => {
168 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.p = Some(v); } }
169 }
170 _ => {}
171 }
172 }
173 "EquivalentInjection.q" => {
174 match val {
175 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.q = Some(v); } }
176 crate::base::FieldValue::TextList(svs) => {
177 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.q = Some(v); } }
178 }
179 _ => {}
180 }
181 }
182 "EquivalentInjection.r" => {
183 match val {
184 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.r = Some(v); } }
185 crate::base::FieldValue::TextList(svs) => {
186 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.r = Some(v); } }
187 }
188 _ => {}
189 }
190 }
191 "EquivalentInjection.r0" => {
192 match val {
193 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.r0 = Some(v); } }
194 crate::base::FieldValue::TextList(svs) => {
195 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.r0 = Some(v); } }
196 }
197 _ => {}
198 }
199 }
200 "EquivalentInjection.r2" => {
201 match val {
202 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.r2 = Some(v); } }
203 crate::base::FieldValue::TextList(svs) => {
204 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.r2 = Some(v); } }
205 }
206 _ => {}
207 }
208 }
209 "EquivalentInjection.regulationCapability" => {
210 match val {
211 crate::base::FieldValue::Text(sv) => { obj.regulation_capability = Some(sv.trim() == "true"); }
212 crate::base::FieldValue::TextList(svs) => {
213 if let Some(sv) = svs.last() { obj.regulation_capability = Some(sv.trim() == "true"); }
214 }
215 _ => {}
216 }
217 }
218 "EquivalentInjection.regulationStatus" => {
219 match val {
220 crate::base::FieldValue::Text(sv) => { obj.regulation_status = Some(sv.trim() == "true"); }
221 crate::base::FieldValue::TextList(svs) => {
222 if let Some(sv) = svs.last() { obj.regulation_status = Some(sv.trim() == "true"); }
223 }
224 _ => {}
225 }
226 }
227 "EquivalentInjection.regulationTarget" => {
228 match val {
229 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.regulation_target = Some(v); } }
230 crate::base::FieldValue::TextList(svs) => {
231 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.regulation_target = Some(v); } }
232 }
233 _ => {}
234 }
235 }
236 "EquivalentInjection.x" => {
237 match val {
238 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.x = Some(v); } }
239 crate::base::FieldValue::TextList(svs) => {
240 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.x = Some(v); } }
241 }
242 _ => {}
243 }
244 }
245 "EquivalentInjection.x0" => {
246 match val {
247 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.x0 = Some(v); } }
248 crate::base::FieldValue::TextList(svs) => {
249 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.x0 = Some(v); } }
250 }
251 _ => {}
252 }
253 }
254 "EquivalentInjection.x2" => {
255 match val {
256 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.x2 = Some(v); } }
257 crate::base::FieldValue::TextList(svs) => {
258 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.x2 = Some(v); } }
259 }
260 _ => {}
261 }
262 }
263 "EquivalentEquipment.EquivalentNetwork" => {
264 if let crate::base::FieldValue::Resource(sv) = val {
265 obj.base.equivalent_network = Some(crate::base::MridRef { mrid: sv.clone() });
266 }
267 }
268 "ConductingEquipment.BaseVoltage" => {
269 if let crate::base::FieldValue::Resource(sv) = val {
270 obj.base.base.base_voltage = Some(crate::base::MridRef { mrid: sv.clone() });
271 }
272 }
273 "Equipment.EquipmentContainer" => {
274 if let crate::base::FieldValue::Resource(sv) = val {
275 obj.base.base.base.equipment_container = Some(crate::base::MridRef { mrid: sv.clone() });
276 }
277 }
278 "Equipment.aggregate" => {
279 match val {
280 crate::base::FieldValue::Text(sv) => { obj.base.base.base.aggregate = Some(sv.trim() == "true"); }
281 crate::base::FieldValue::TextList(svs) => {
282 if let Some(sv) = svs.last() { obj.base.base.base.aggregate = Some(sv.trim() == "true"); }
283 }
284 _ => {}
285 }
286 }
287 "Equipment.inService" => {
288 match val {
289 crate::base::FieldValue::Text(sv) => { obj.base.base.base.in_service = Some(sv.trim() == "true"); }
290 crate::base::FieldValue::TextList(svs) => {
291 if let Some(sv) = svs.last() { obj.base.base.base.in_service = Some(sv.trim() == "true"); }
292 }
293 _ => {}
294 }
295 }
296 "Equipment.normallyInService" => {
297 match val {
298 crate::base::FieldValue::Text(sv) => { obj.base.base.base.normally_in_service = Some(sv.trim() == "true"); }
299 crate::base::FieldValue::TextList(svs) => {
300 if let Some(sv) = svs.last() { obj.base.base.base.normally_in_service = Some(sv.trim() == "true"); }
301 }
302 _ => {}
303 }
304 }
305 "IdentifiedObject.description" => {
306 match val {
307 crate::base::FieldValue::Text(sv) => { obj.base.base.base.base.base.description = sv.clone(); }
308 crate::base::FieldValue::TextList(svs) => {
309 if let Some(sv) = svs.last() { obj.base.base.base.base.base.description = sv.clone(); }
310 }
311 _ => {}
312 }
313 }
314 "IdentifiedObject.energyIdentCodeEic" => {
315 match val {
316 crate::base::FieldValue::Text(sv) => { obj.base.base.base.base.base.energy_ident_code_eic = sv.clone(); }
317 crate::base::FieldValue::TextList(svs) => {
318 if let Some(sv) = svs.last() { obj.base.base.base.base.base.energy_ident_code_eic = sv.clone(); }
319 }
320 _ => {}
321 }
322 }
323 "IdentifiedObject.mRID" => {
324 match val {
325 crate::base::FieldValue::Text(sv) => { obj.base.base.base.base.base.m_rid = sv.clone(); }
326 crate::base::FieldValue::TextList(svs) => {
327 if let Some(sv) = svs.last() { obj.base.base.base.base.base.m_rid = sv.clone(); }
328 }
329 _ => {}
330 }
331 }
332 "IdentifiedObject.name" => {
333 match val {
334 crate::base::FieldValue::Text(sv) => { obj.base.base.base.base.base.name = sv.clone(); }
335 crate::base::FieldValue::TextList(svs) => {
336 if let Some(sv) = svs.last() { obj.base.base.base.base.base.name = sv.clone(); }
337 }
338 _ => {}
339 }
340 }
341 "IdentifiedObject.shortName" => {
342 match val {
343 crate::base::FieldValue::Text(sv) => { obj.base.base.base.base.base.short_name = sv.clone(); }
344 crate::base::FieldValue::TextList(svs) => {
345 if let Some(sv) = svs.last() { obj.base.base.base.base.base.short_name = sv.clone(); }
346 }
347 _ => {}
348 }
349 }
350 _ => {}
351 }
352 }
353 obj
354 }
355}