pub struct Reference {
pub type_: ReferenceTypes,
pub referred_semantic_id: Option<Box<Reference>>,
pub keys: Vec<Key>,
}Fields§
§type_: ReferenceTypes§referred_semantic_id: Option<Box<Reference>>E.g. semantic id of a standard submodel
keys: Vec<Key>KeyType + Value, e.g. Submodel + https://example.com/ids/123456789
Implementations§
Source§impl Reference
impl Reference
Sourcepub fn new(type_: ReferenceTypes, key: Key) -> Self
pub fn new(type_: ReferenceTypes, key: Key) -> Self
Examples found in repository?
examples/generate.rs (lines 18-21)
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}pub fn new_from_vec(type_: ReferenceTypes, keys: Vec<Key>) -> Self
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Reference
impl<'de> Deserialize<'de> for Reference
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 Reference
Auto Trait Implementations§
impl Freeze for Reference
impl RefUnwindSafe for Reference
impl Send for Reference
impl Sync for Reference
impl Unpin for Reference
impl UnwindSafe for Reference
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