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