dawproject_rs/api/
real_parameter.rs

1#![allow(unused)]
2use {
3    super::{add_one_get, fake_rng},
4    fake::{Dummy, Fake, Faker},
5    serde::{Deserialize, Serialize},
6};
7
8use super::unit::Unit;
9
10#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
11pub struct RealParameter {
12    #[serde(rename = "@id")]
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub id: Option<String>,
15    #[serde(rename = "@name")]
16    #[serde(skip_serializing_if = "Option::is_none")]
17    name: Option<String>,
18    #[serde(rename = "@color")]
19    #[serde(skip_serializing_if = "Option::is_none")]
20    color: Option<String>,
21    #[serde(rename = "@comment")]
22    #[serde(skip_serializing_if = "Option::is_none")]
23    comment: Option<String>,
24    #[serde(rename = "@parameterID")]
25    #[serde(skip_serializing_if = "Option::is_none")]
26    parameter_id: Option<i32>,
27    #[serde(rename = "@value")]
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub value: Option<f64>,
30    #[serde(rename = "@unit")]
31    pub unit: Unit,
32    #[serde(rename = "@min")]
33    #[serde(skip_serializing_if = "Option::is_none")]
34    min: Option<f64>,
35    #[serde(rename = "@max")]
36    #[serde(skip_serializing_if = "Option::is_none")]
37    max: Option<f64>,
38}
39
40impl RealParameter {
41    pub fn new_test(unit: Unit) -> RealParameter {
42        RealParameter {
43            id: Some(format!("id{}", add_one_get())),
44            name: None,
45            color: None,
46            comment: None,
47            parameter_id: None,
48            value: None,
49            unit,
50            min: None,
51            max: None,
52        }
53    }
54
55    pub fn new_fake() -> Self {
56        let o: Self = Faker.fake_with_rng(&mut fake_rng());
57        o
58    }
59}
60
61#[cfg(test)]
62mod tests {
63    use {super::super::unit::Unit, std::error::Error};
64
65    use {super::RealParameter, quick_xml::se::to_string};
66
67    #[test]
68    pub fn se_test() -> Result<(), Box<dyn Error>> {
69        let mut pan = RealParameter::new_fake();
70
71        match to_string(&pan) {
72            Ok(_) => (),
73            Err(err) => return Err(err.into()),
74        }
75
76        Ok(())
77    }
78}