fmi_schema/fmi2/
attribute_groups.rs

1use yaserde_derive::{YaDeserialize, YaSerialize};
2
3#[derive(Default, Debug, PartialEq, YaSerialize, YaDeserialize)]
4pub struct RealAttributes {
5    #[yaserde(attribute = true)]
6    pub quantity: Option<String>,
7
8    #[yaserde(attribute = true)]
9    pub unit: Option<String>,
10
11    /// Default display unit, provided the conversion of values in "unit" to values in
12    /// "displayUnit" is defined in UnitDefinitions / Unit / DisplayUnit.
13    #[yaserde(attribute = true, rename = "displayUnit")]
14    pub display_unit: Option<String>,
15
16    /// If relativeQuantity=true, offset for displayUnit must be ignored.
17    #[yaserde(attribute = true, rename = "relativeQuantity")]
18    pub relative_quantity: Option<bool>,
19
20    #[yaserde(attribute = true, rename = "min")]
21    pub min: Option<f64>,
22
23    /// max >= min required
24    #[yaserde(attribute = true, rename = "max")]
25    pub max: Option<f64>,
26
27    /// nominal >= min and <= max required
28    #[yaserde(attribute = true, rename = "nominal")]
29    pub nominal: Option<f64>,
30
31    /// Set to true, e.g., for crank angle. If true and variable is a state, relative tolerance
32    /// should be zero on this variable.
33    #[yaserde(attribute = true, rename = "unbounded")]
34    pub unbounded: Option<bool>,
35}
36
37#[derive(Default, Debug, PartialEq, YaSerialize, YaDeserialize)]
38pub struct IntegerAttributes {
39    pub quantity: Option<String>,
40
41    #[yaserde(attribute = true, rename = "min")]
42    pub min: Option<f64>,
43
44    /// max >= min required
45    #[yaserde(attribute = true, rename = "max")]
46    pub max: Option<f64>,
47}