basyx_rs/submodel_element/
basic_event_element.rs1use super::EmbeddedDataSpecification;
7use crate::submodel_element::direction::Direction;
8use crate::submodel_element::state_of_event::StateOfEvent;
9use crate::LangString as LangStringNameType;
10use crate::LangString as LangStringTextType;
11use crate::{qualifier::Qualifier, reference::Reference, Extension};
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
15pub struct BasicEventElement {
16 #[serde(skip_serializing_if = "Option::is_none")]
19 pub extensions: Option<Vec<Extension>>,
20
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub category: Option<String>,
23
24 #[serde(skip_serializing_if = "Option::is_none")]
25 #[serde(rename = "idShort")]
26 pub id_short: Option<String>,
27
28 #[serde(skip_serializing_if = "Option::is_none")]
29 #[serde(rename = "displayName")]
30 pub display_name: Option<Vec<LangStringNameType>>,
31
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub description: Option<Vec<LangStringTextType>>,
34
35 #[serde(skip_serializing_if = "Option::is_none")]
37 #[serde(rename = "semanticId")]
38 pub semantic_id: Option<Reference>,
39
40 #[serde(skip_serializing_if = "Option::is_none")]
41 #[serde(rename = "supplementalSemanticIds")]
42 pub supplemental_semantic_ids: Option<Vec<Reference>>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
46 pub qualifiers: Option<Vec<Qualifier>>,
47
48 #[serde(skip_serializing_if = "Option::is_none")]
50 #[serde(rename = "embeddedDataSpecifications")]
51 pub embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>,
52
53 pub observed: Reference,
54
55 pub direction: Direction,
56
57 pub state: StateOfEvent,
58
59 #[serde(skip_serializing_if = "Option::is_none")]
60 #[serde(rename = "messageTopic")]
61 pub message_topic: Option<String>,
62
63 #[serde(skip_serializing_if = "Option::is_none")]
64 #[serde(rename = "messageBroker")]
65 pub message_broker: Option<Reference>,
66
67 #[serde(skip_serializing_if = "Option::is_none")]
68 #[serde(rename = "lastUpdate")]
69 pub last_update: Option<String>,
70
71 #[serde(skip_serializing_if = "Option::is_none")]
72 #[serde(rename = "minInterval")]
73 pub min_interval: Option<String>,
74
75 #[serde(skip_serializing_if = "Option::is_none")]
76 #[serde(rename = "maxInterval")]
77 pub max_interval: Option<String>,
78}
79
80impl BasicEventElement {
81 pub fn new(observed: Reference, direction: Direction, state: StateOfEvent) -> Self {
82 Self {
83 extensions: None,
84 category: None,
85 id_short: None,
86 display_name: None,
87 description: None,
88 semantic_id: None,
89 supplemental_semantic_ids: None,
90 qualifiers: None,
91 embedded_data_specifications: None,
92 observed,
93 direction,
94 state,
95 message_topic: None,
96 message_broker: None,
97 last_update: None,
98 min_interval: None,
99 max_interval: None,
100 }
101 }
102}