dawproject_rs/api/
lane.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 Lane {
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}
23
24impl Lane {
25    pub fn new_test() -> Self {
26        Self {
27            id: Some(format!("id_{}", add_one_get())),
28            name: None,
29            color: None,
30            comment: None,
31        }
32    }
33
34    pub fn new_fake() -> Self {
35        let o: Self = Faker.fake_with_rng(&mut fake_rng());
36        o
37    }
38}
39
40#[cfg(test)]
41mod tests {
42    use {super::Lane, quick_xml::se::to_string, std::error::Error};
43
44    #[test]
45    pub fn se_test() -> Result<(), Box<dyn Error>> {
46        let mut o = Lane::new_fake();
47
48        match to_string(&o) {
49            Ok(o) => println!("{}", o),
50            Err(err) => return Err(err.into()),
51        }
52
53        Ok(())
54    }
55}