pub struct Submodel {Show 13 fields
pub extensions: Option<Vec<Extension>>,
pub category: Option<String>,
pub id_short: Option<String>,
pub display_name: Option<Vec<LangString>>,
pub description: Option<Vec<LangString>>,
pub administration: Option<AdministrativeInformation>,
pub id: String,
pub kind: Option<ModellingKind>,
pub semantic_id: Option<Reference>,
pub supplemental_semantic_ids: Option<Vec<Reference>>,
pub qualifiers: Option<Vec<Qualifier>>,
pub embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>,
pub submodel_elements: Option<Vec<SubmodelElement>>,
}Fields§
§extensions: Option<Vec<Extension>>§category: Option<String>§id_short: Option<String>§display_name: Option<Vec<LangString>>§description: Option<Vec<LangString>>§administration: Option<AdministrativeInformation>§id: String§kind: Option<ModellingKind>§semantic_id: Option<Reference>§supplemental_semantic_ids: Option<Vec<Reference>>§qualifiers: Option<Vec<Qualifier>>§embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>§submodel_elements: Option<Vec<SubmodelElement>>Implementations§
Source§impl Submodel
impl Submodel
Sourcepub fn new(id: String) -> Self
pub fn new(id: String) -> Self
Examples found in repository?
examples/generate.rs (line 16)
14fn main() -> Result<()> {
15 let mut technical_data =
16 Submodel::new("http://i40.customer.com/type/1/1/7A7104BDAB57E184".into());
17
18 technical_data.semantic_id = Some(Reference::new(
19 ReferenceTypes::ExternalReference,
20 Key::new(KeyTypes::GlobalReference, "0173-1#01-AFZ615#016".into()),
21 ));
22
23 if let Some(id_short) = id_short_from_str("my_submodel1").ok() {
24 technical_data.id_short = Some(id_short);
25 }
26
27 let mut property = Property::new(DataTypeDefXsd::XsBoolean);
28 property.category = Some(format!("{}", Category::CONSTANT));
29
30 if let Some(id_short) = id_short_from_str("my_property1").ok() {
31 property.id_short = Some(id_short);
32 }
33
34 property.value = Some("true".to_string());
35
36 let sme = SubmodelElement::Property(property);
37
38 let mut sm = Submodel::new("https://example.com/ids/1234567890".to_string());
39
40 if let Some(id_short) = id_short_from_str("my_submodel1").ok() {
41 sm.id_short = Some(id_short);
42 }
43
44 sm.add_submodel_element(sme.clone());
45
46 let mut aas = AssetAdministrationShell::new(
47 "https://example.com/ids/0987654321".to_string(),
48 AssetInformation::new(AssetKind::Instance),
49 );
50
51 if let Some(id_short) = id_short_from_str("my_aas1").ok() {
52 aas.id_short = Some(id_short);
53 }
54 // unfortunately, aascheck won't notice, if the id_short is malformed.
55 //aas.id_short = Some("_id_short".to_string());
56
57 aas.add_reference_to_submodel(&sm, ReferenceTypes::ModelReference, true);
58
59 serialize("submodel1.json", &sm).ok();
60 serialize("aas1.json", &aas)
61}Sourcepub fn add_submodel_element(&mut self, element: SubmodelElement)
pub fn add_submodel_element(&mut self, element: SubmodelElement)
Examples found in repository?
examples/generate.rs (line 44)
14fn main() -> Result<()> {
15 let mut technical_data =
16 Submodel::new("http://i40.customer.com/type/1/1/7A7104BDAB57E184".into());
17
18 technical_data.semantic_id = Some(Reference::new(
19 ReferenceTypes::ExternalReference,
20 Key::new(KeyTypes::GlobalReference, "0173-1#01-AFZ615#016".into()),
21 ));
22
23 if let Some(id_short) = id_short_from_str("my_submodel1").ok() {
24 technical_data.id_short = Some(id_short);
25 }
26
27 let mut property = Property::new(DataTypeDefXsd::XsBoolean);
28 property.category = Some(format!("{}", Category::CONSTANT));
29
30 if let Some(id_short) = id_short_from_str("my_property1").ok() {
31 property.id_short = Some(id_short);
32 }
33
34 property.value = Some("true".to_string());
35
36 let sme = SubmodelElement::Property(property);
37
38 let mut sm = Submodel::new("https://example.com/ids/1234567890".to_string());
39
40 if let Some(id_short) = id_short_from_str("my_submodel1").ok() {
41 sm.id_short = Some(id_short);
42 }
43
44 sm.add_submodel_element(sme.clone());
45
46 let mut aas = AssetAdministrationShell::new(
47 "https://example.com/ids/0987654321".to_string(),
48 AssetInformation::new(AssetKind::Instance),
49 );
50
51 if let Some(id_short) = id_short_from_str("my_aas1").ok() {
52 aas.id_short = Some(id_short);
53 }
54 // unfortunately, aascheck won't notice, if the id_short is malformed.
55 //aas.id_short = Some("_id_short".to_string());
56
57 aas.add_reference_to_submodel(&sm, ReferenceTypes::ModelReference, true);
58
59 serialize("submodel1.json", &sm).ok();
60 serialize("aas1.json", &aas)
61}Trait Implementations§
Source§impl<'de> Deserialize<'de> for Submodel
impl<'de> Deserialize<'de> for Submodel
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Submodel
Auto Trait Implementations§
impl Freeze for Submodel
impl RefUnwindSafe for Submodel
impl Send for Submodel
impl Sync for Submodel
impl Unpin for Submodel
impl UnwindSafe for Submodel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more