basyx_rs/
data_specification_iec61360.rs

1// SPDX-FileCopyrightText: 2023 Jan Hecht
2//
3// SPDX-License-Identifier: MIT
4
5use crate::LangString as LangStringDefinitionTypeIec61360;
6use crate::LangString as LangStringPreferredNameTypeIec61360;
7use crate::LangString as LangStringShortNameTypeIec61360;
8use crate::{DataTypeIec61360, LevelType, Reference, ValueList};
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
12#[serde(tag = "modelType")]
13pub struct DataSpecificationIec61360 {
14    #[serde(skip_serializing_if = "Option::is_none")]
15    #[serde(rename = "dataType")]
16    pub data_type: Option<DataTypeIec61360>,
17
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub definition: Option<Vec<LangStringDefinitionTypeIec61360>>,
20
21    #[serde(skip_serializing_if = "Option::is_none")]
22    #[serde(rename = "levelType")]
23    pub level_type: Option<LevelType>,
24
25    #[serde(rename = "preferredName")]
26    pub preferred_name: Vec<LangStringPreferredNameTypeIec61360>,
27
28    #[serde(skip_serializing_if = "Option::is_none")]
29    #[serde(rename = "shortName")]
30    pub short_name: Option<Vec<LangStringShortNameTypeIec61360>>,
31
32    #[serde(skip_serializing_if = "Option::is_none")]
33    #[serde(rename = "sourceOfDefinition")]
34    pub source_of_definition: Option<String>,
35
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub symbol: Option<String>,
38
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub unit: Option<String>,
41
42    #[serde(skip_serializing_if = "Option::is_none")]
43    #[serde(rename = "unitId")]
44    pub unit_id: Option<Reference>,
45
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub value: Option<String>,
48
49    #[serde(skip_serializing_if = "Option::is_none")]
50    #[serde(rename = "valueFormat")]
51    pub value_format: Option<String>,
52
53    #[serde(skip_serializing_if = "Option::is_none")]
54    #[serde(rename = "valueList")]
55    pub value_list: Option<ValueList>,
56}