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