basyx_rs/submodel_element/
annotated_relationship_element.rs1use crate::embedded_data_specification::EmbeddedDataSpecification;
6use crate::submodel_element::data_element_choice::DataElementChoice;
7use crate::LangString as LangStringNameType;
8use crate::LangString as LangStringTextType;
9use crate::{Extension, Qualifier, Reference};
10use serde::{Deserialize, Serialize};
11
12#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
13pub struct AnnotatedRelationshipElement {
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub extensions: Option<Vec<Extension>>,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub category: Option<String>,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
21 #[serde(rename = "idShort")]
22 pub id_short: Option<String>,
23
24 #[serde(skip_serializing_if = "Option::is_none")]
25 #[serde(rename = "displayName")]
26 pub display_name: Option<Vec<LangStringNameType>>,
27
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub description: Option<Vec<LangStringTextType>>,
30
31 #[serde(skip_serializing_if = "Option::is_none")]
32 #[serde(rename = "semanticId")]
33 pub semantic_id: Option<Reference>,
34
35 #[serde(skip_serializing_if = "Option::is_none")]
36 #[serde(rename = "supplementalSemanticIds")]
37 pub supplemental_semantic_ids: Option<Vec<Reference>>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub qualifiers: Option<Vec<Qualifier>>,
41
42 #[serde(skip_serializing_if = "Option::is_none")]
43 #[serde(rename = "embeddedDataSpecifications")]
44 pub embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>,
45
46 pub first: Reference,
47
48 pub second: Reference,
49
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub annotations: Option<Vec<DataElementChoice>>,
52}
53
54impl AnnotatedRelationshipElement {
55 pub fn new(first: Reference, second: Reference) -> Self {
56 Self {
57 extensions: None,
58 category: None,
59 id_short: None,
60 display_name: None,
61 first,
62 second,
63 semantic_id: None,
64 supplemental_semantic_ids: None,
65 qualifiers: None,
66 description: None,
67 embedded_data_specifications: None,
68 annotations: None,
69 }
70 }
71}