dawproject_rs/api/
send.rs

1#![allow(unused)]
2
3use {
4    super::{
5        add_one_get, fake_rng, real_parameter::RealParameter, send_type::SendTypeEnum, unit::Unit,
6    },
7    fake::{Dummy, Fake, Faker},
8    serde::{Deserialize, Serialize},
9};
10#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
11pub struct Send {
12    #[serde(rename = "@id")]
13    #[serde(skip_serializing_if = "Option::is_none")]
14    id: Option<String>,
15    #[serde(rename = "Volume")]
16    volume: RealParameter,
17    #[serde(rename = "Pan")]
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pan: Option<RealParameter>,
20    #[serde(rename = "@destination")]
21    #[serde(skip_serializing_if = "Option::is_none")]
22    destination: Option<String>,
23    #[serde(rename = "@type")]
24    send_type: SendTypeEnum,
25}
26
27impl Send {
28    pub fn new_test() -> Self {
29        Self {
30            id: Some(format!("id{}", add_one_get())),
31            volume: RealParameter::new_test(Unit::Beats),
32            pan: None,
33            destination: None,
34            send_type: SendTypeEnum::new_fake(),
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::Send, quick_xml::se::to_string, std::error::Error};
47
48    #[test]
49    pub fn se_test() -> Result<(), Box<dyn Error>> {
50        let mut o = Send::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}