dawproject_rs/api/timeline_mods/
time_signature_point.rs

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