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