dawproject_rs/api/timeline_mods/
media_file.rs

1#![allow(unused)]
2
3use super::time_unit::TimeUnit;
4
5use {
6    super::super::{add_one_get, fake_rng, file_reference::FileReference},
7    fake::{Dummy, Fake, Faker},
8    serde::{Deserialize, Serialize},
9};
10#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
11pub struct MediaFile {
12    #[serde(rename = "@id")]
13    #[serde(skip_serializing_if = "Option::is_none")]
14    id: Option<String>,
15    #[serde(rename = "@name")]
16    #[serde(skip_serializing_if = "Option::is_none")]
17    name: Option<String>,
18    #[serde(rename = "@color")]
19    #[serde(skip_serializing_if = "Option::is_none")]
20    color: Option<String>,
21    #[serde(rename = "@comment")]
22    #[serde(skip_serializing_if = "Option::is_none")]
23    comment: Option<String>,
24    #[serde(rename = "@track")]
25    #[serde(skip_serializing_if = "Option::is_none")]
26    track: Option<String>,
27    #[serde(rename = "@timeUnit")]
28    #[serde(skip_serializing_if = "Option::is_none", default)]
29    pub time_unit: Option<TimeUnit>,
30    #[serde(rename = "File")]
31    #[serde(skip_serializing_if = "Option::is_none")]
32    files_sequence: Option<Vec<FileReference>>,
33    #[serde(rename = "@duration")]
34    #[serde(skip_serializing_if = "Option::is_none")]
35    duration: Option<f64>,
36}
37
38impl MediaFile {
39    pub fn new_test() -> Self {
40        Self {
41            id: Some(format!("id{}", add_one_get())),
42            name: None,
43            color: None,
44            comment: None,
45            track: None,
46            time_unit: None,
47            files_sequence: None,
48            duration: None,
49        }
50    }
51
52    pub fn new_fake() -> Self {
53        let o: Self = Faker.fake_with_rng(&mut fake_rng());
54        o
55    }
56}
57
58#[cfg(test)]
59mod tests {
60    use {super::MediaFile, quick_xml::se::to_string, std::error::Error};
61
62    #[test]
63    pub fn se_test() -> Result<(), Box<dyn Error>> {
64        let mut o = MediaFile::new_fake();
65
66        match to_string(&o) {
67            Ok(o) => println!("{}", o),
68            Err(err) => return Err(err.into()),
69        }
70
71        Ok(())
72    }
73}