cimstructs/
RemoteInputSignal.rs1#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
3pub struct RemoteInputSignal {
4 #[serde(flatten)]
5 pub base: super::IdentifiedObject,
6 #[serde(skip_serializing_if = "Option::is_none")]
8 pub discontinuous_excitation_control_dynamics: Option<super::base::MridRef>,
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub pfv_ar_controller_type1dynamics: Option<super::base::MridRef>,
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub power_system_stabilizer_dynamics: Option<super::base::MridRef>,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub terminal: Option<super::base::MridRef>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub underexcitation_limiter_dynamics: Option<super::base::MridRef>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub voltage_compensator_dynamics: Option<super::base::MridRef>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub remote_signal_type: Option<super::base::UriRef>,
27}
28impl crate::base::CimElement for RemoteInputSignal {
29 fn mrid(&self) -> &str { &self.base.id }
30 fn type_name(&self) -> &'static str { "RemoteInputSignal" }
31 fn as_any(&self) -> &dyn std::any::Any { self }
32 fn to_json_value(&self) -> serde_json::Value {
33 serde_json::to_value(self).unwrap_or(serde_json::Value::Null)
34 }
35 fn to_block(&self) -> crate::base::RdfBlock {
36 let mut block = self.base.to_block();
37 block.type_name = "RemoteInputSignal".to_string();
38 if let Some(ref v) = self.discontinuous_excitation_control_dynamics {
39 block.fields.insert("RemoteInputSignal.DiscontinuousExcitationControlDynamics".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
40 }
41 if let Some(ref v) = self.pfv_ar_controller_type1dynamics {
42 block.fields.insert("RemoteInputSignal.PFVArControllerType1Dynamics".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
43 }
44 if let Some(ref v) = self.power_system_stabilizer_dynamics {
45 block.fields.insert("RemoteInputSignal.PowerSystemStabilizerDynamics".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
46 }
47 if let Some(ref v) = self.terminal {
48 block.fields.insert("RemoteInputSignal.Terminal".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
49 }
50 if let Some(ref v) = self.underexcitation_limiter_dynamics {
51 block.fields.insert("RemoteInputSignal.UnderexcitationLimiterDynamics".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
52 }
53 if let Some(ref v) = self.voltage_compensator_dynamics {
54 block.fields.insert("RemoteInputSignal.VoltageCompensatorDynamics".into(), crate::base::FieldValue::Resource(v.mrid.clone()));
55 }
56 if let Some(ref v) = self.remote_signal_type {
57 block.fields.insert("RemoteInputSignal.remoteSignalType".into(), crate::base::FieldValue::Resource(v.uri.clone()));
58 }
59 block
60 }
61}
62
63impl RemoteInputSignal {
64 pub fn from_block(b: &crate::base::RdfBlock) -> Self {
65 let mut obj = Self::default();
66 obj.base.id.clone_from(&b.mrid);
67 for (key, val) in &b.fields {
68 match key.as_str() {
69 "RemoteInputSignal.DiscontinuousExcitationControlDynamics" => {
70 if let crate::base::FieldValue::Resource(sv) = val {
71 obj.discontinuous_excitation_control_dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
72 }
73 }
74 "RemoteInputSignal.PFVArControllerType1Dynamics" => {
75 if let crate::base::FieldValue::Resource(sv) = val {
76 obj.pfv_ar_controller_type1dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
77 }
78 }
79 "RemoteInputSignal.PowerSystemStabilizerDynamics" => {
80 if let crate::base::FieldValue::Resource(sv) = val {
81 obj.power_system_stabilizer_dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
82 }
83 }
84 "RemoteInputSignal.Terminal" => {
85 if let crate::base::FieldValue::Resource(sv) = val {
86 obj.terminal = Some(crate::base::MridRef { mrid: sv.clone() });
87 }
88 }
89 "RemoteInputSignal.UnderexcitationLimiterDynamics" => {
90 if let crate::base::FieldValue::Resource(sv) = val {
91 obj.underexcitation_limiter_dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
92 }
93 }
94 "RemoteInputSignal.VoltageCompensatorDynamics" => {
95 if let crate::base::FieldValue::Resource(sv) = val {
96 obj.voltage_compensator_dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
97 }
98 }
99 "RemoteInputSignal.remoteSignalType" => {
100 if let crate::base::FieldValue::Resource(sv) = val {
101 obj.remote_signal_type = Some(crate::base::UriRef { uri: sv.clone() });
102 }
103 }
104 "IdentifiedObject.description" => {
105 match val {
106 crate::base::FieldValue::Text(sv) => { obj.base.description = sv.clone(); }
107 crate::base::FieldValue::TextList(svs) => {
108 if let Some(sv) = svs.last() { obj.base.description = sv.clone(); }
109 }
110 _ => {}
111 }
112 }
113 "IdentifiedObject.energyIdentCodeEic" => {
114 match val {
115 crate::base::FieldValue::Text(sv) => { obj.base.energy_ident_code_eic = sv.clone(); }
116 crate::base::FieldValue::TextList(svs) => {
117 if let Some(sv) = svs.last() { obj.base.energy_ident_code_eic = sv.clone(); }
118 }
119 _ => {}
120 }
121 }
122 "IdentifiedObject.mRID" => {
123 match val {
124 crate::base::FieldValue::Text(sv) => { obj.base.m_rid = sv.clone(); }
125 crate::base::FieldValue::TextList(svs) => {
126 if let Some(sv) = svs.last() { obj.base.m_rid = sv.clone(); }
127 }
128 _ => {}
129 }
130 }
131 "IdentifiedObject.name" => {
132 match val {
133 crate::base::FieldValue::Text(sv) => { obj.base.name = sv.clone(); }
134 crate::base::FieldValue::TextList(svs) => {
135 if let Some(sv) = svs.last() { obj.base.name = sv.clone(); }
136 }
137 _ => {}
138 }
139 }
140 "IdentifiedObject.shortName" => {
141 match val {
142 crate::base::FieldValue::Text(sv) => { obj.base.short_name = sv.clone(); }
143 crate::base::FieldValue::TextList(svs) => {
144 if let Some(sv) = svs.last() { obj.base.short_name = sv.clone(); }
145 }
146 _ => {}
147 }
148 }
149 _ => {}
150 }
151 }
152 obj
153 }
154}