1use crate::{DataTypeDefXsd, Reference};
6use serde::{Deserialize, Serialize};
7
8#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
9pub struct Extension {
10 #[serde(skip_serializing_if = "Option::is_none")]
11 #[serde(rename = "semanticId")]
12 pub semantic_id: Option<Reference>,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
15 #[serde(rename = "supplementalSemanticIds")]
16 pub supplemental_semantic_ids: Option<Vec<Reference>>,
17
18 pub name: String,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
21 #[serde(rename = "valueType")]
22 pub value_type: Option<DataTypeDefXsd>,
23
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub value: Option<String>,
26
27 #[serde(skip_serializing_if = "Option::is_none")]
28 #[serde(rename = "refersTo")]
29 pub refers_to: Option<Vec<Reference>>,
30}
31
32impl Extension {
33 pub fn new(name: String) -> Self {
34 Self {
35 semantic_id: None,
36 supplemental_semantic_ids: None,
37 name,
38 value_type: None,
39 value: None,
40 refers_to: None,
41 }
42 }
43}