dawproject_rs/api/timeline_mods/
automation_target.rs

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