dawproject_rs/api/
real_parameter.rs1#![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}