1use crate::traits::FmiModelDescription;
14
15#[derive(Default, PartialEq, Debug, hard_xml::XmlRead, hard_xml::XmlWrite)]
18#[xml(tag = "fmiModelDescription")]
19pub struct MinModelDescription {
20 #[xml(attr = "fmiVersion")]
21 pub fmi_version: String,
22 #[xml(attr = "modelName")]
23 pub model_name: String,
24}
25
26impl FmiModelDescription for MinModelDescription {
27 fn model_name(&self) -> &str {
28 &self.model_name
29 }
30
31 fn version_string(&self) -> &str {
32 &self.fmi_version
33 }
34
35 fn deserialize(xml: &str) -> Result<Self, crate::Error> {
36 hard_xml::XmlRead::from_str(xml).map_err(crate::Error::XmlParse)
37 }
38
39 fn serialize(&self) -> Result<String, crate::Error> {
40 hard_xml::XmlWrite::to_string(self).map_err(crate::Error::XmlParse)
41 }
42}