dawproject_rs/api/
parameter.rs

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