dawproject_rs/api/timeline_mods/
real_point.rs

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