pub struct AssetAdministrationShell {
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 embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>,
pub derived_from: Option<Reference>,
pub asset_information: AssetInformation,
pub submodels: Option<Vec<Reference>>,
}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§embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>§derived_from: Option<Reference>§asset_information: AssetInformation§submodels: Option<Vec<Reference>>Implementations§
Source§impl AssetAdministrationShell
impl AssetAdministrationShell
Sourcepub fn new(id: String, asset_information: AssetInformation) -> Self
pub fn new(id: String, asset_information: AssetInformation) -> Self
Create a new AssetAdministrationShell
id should be a valid Identifier (IRI, IRDI, …).
asset_information must have at least the asset_kind.
§Example:
use basyx_rs::{AssetAdministrationShell, AssetInformation, AssetKind};
let my_aas = AssetAdministrationShell::new(
"https://example.com/id/123".to_string(),
AssetInformation::new(AssetKind::Instance));
Examples found in repository?
examples/generate.rs (lines 46-49)
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_reference_to_submodel(
&mut self,
submodel: &Submodel,
type_: ReferenceTypes,
include_referred_semantic_id: bool,
)
pub fn add_reference_to_submodel( &mut self, submodel: &Submodel, type_: ReferenceTypes, include_referred_semantic_id: bool, )
Examples found in repository?
examples/generate.rs (line 57)
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 delete_reference_to_submodel(&mut self, index: usize)
Trait Implementations§
Source§impl Clone for AssetAdministrationShell
impl Clone for AssetAdministrationShell
Source§fn clone(&self) -> AssetAdministrationShell
fn clone(&self) -> AssetAdministrationShell
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AssetAdministrationShell
impl Debug for AssetAdministrationShell
Source§impl<'de> Deserialize<'de> for AssetAdministrationShell
impl<'de> Deserialize<'de> for AssetAdministrationShell
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
Source§impl PartialEq for AssetAdministrationShell
impl PartialEq for AssetAdministrationShell
Source§impl Serialize for AssetAdministrationShell
impl Serialize for AssetAdministrationShell
impl StructuralPartialEq for AssetAdministrationShell
Auto Trait Implementations§
impl Freeze for AssetAdministrationShell
impl RefUnwindSafe for AssetAdministrationShell
impl Send for AssetAdministrationShell
impl Sync for AssetAdministrationShell
impl Unpin for AssetAdministrationShell
impl UnwindSafe for AssetAdministrationShell
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