basyx_rs/submodel_element/
operation.rs1use super::EmbeddedDataSpecification;
7use crate::submodel_element::OperationVariable;
8use crate::LangString as LangStringNameType;
9use crate::LangString as LangStringTextType;
10use crate::{reference::Reference, Extension, Qualifier};
11use serde::{Deserialize, Serialize};
12
13#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
14pub struct Operation {
15 #[serde(skip_serializing_if = "Option::is_none")]
18 pub extensions: Option<Vec<Extension>>,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub category: Option<String>,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
24 #[serde(rename = "idShort")]
25 pub id_short: Option<String>,
26
27 #[serde(skip_serializing_if = "Option::is_none")]
28 #[serde(rename = "displayName")]
29 pub display_name: Option<Vec<LangStringNameType>>,
30
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub description: Option<Vec<LangStringTextType>>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
36 #[serde(rename = "semanticId")]
37 pub semantic_id: Option<Reference>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
40 #[serde(rename = "supplementalSemanticIds")]
41 pub supplemental_semantic_ids: Option<Vec<Reference>>,
42
43 #[serde(skip_serializing_if = "Option::is_none")]
45 pub qualifiers: Option<Vec<Qualifier>>,
46
47 #[serde(skip_serializing_if = "Option::is_none")]
49 #[serde(rename = "embeddedDataSpecifications")]
50 pub embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>,
51
52 #[serde(skip_serializing_if = "Option::is_none")]
54 #[serde(rename = "inputVariables")]
55 pub input_variables: Option<Vec<OperationVariable>>,
56
57 #[serde(skip_serializing_if = "Option::is_none")]
58 #[serde(rename = "outputVariables")]
59 pub output_variables: Option<Vec<OperationVariable>>,
60
61 #[serde(skip_serializing_if = "Option::is_none")]
62 #[serde(rename = "inoutputVariables")]
63 pub inoutput_variables: Option<Vec<OperationVariable>>,
64}
65
66impl Operation {
67 pub fn new() -> Self {
68 Self {
69 extensions: None,
70 category: None,
71 id_short: None,
72 display_name: None,
73 description: None,
74 semantic_id: None,
75 supplemental_semantic_ids: None,
76 qualifiers: None,
77 embedded_data_specifications: None,
78 input_variables: None,
79 output_variables: None,
80 inoutput_variables: None,
81 }
82 }
83}
84
85impl Default for Operation {
86 fn default() -> Self {
87 Operation::new()
88 }
89}