dawproject_rs/api/timeline_mods/
warp.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)]
9#[serde(rename_all = "lowercase")]
10enum WarpSequenceEnum {
11    Time(f64),
12    ContentTime(f64),
13}
14
15#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
16pub struct Warp {
17    #[serde(rename = "@time")]
18    time: f64,
19    #[serde(rename = "@contentTime")]
20    content_time: f64,
21}
22
23impl Warp {
24    pub fn new_test(time: f64, content_time: f64) -> Self {
25        Self { time, content_time }
26    }
27
28    pub fn new_fake() -> Self {
29        let o: Self = Faker.fake_with_rng(&mut fake_rng());
30        o
31    }
32}
33
34#[cfg(test)]
35mod tests {
36    use {super::Warp, quick_xml::se::to_string, std::error::Error};
37
38    #[test]
39    pub fn se_test() -> Result<(), Box<dyn Error>> {
40        let mut o = Warp::new_test(1.0, 1.0);
41
42        match to_string(&o) {
43            Ok(o) => println!("{}", o),
44            Err(err) => return Err(err.into()),
45        }
46
47        Ok(())
48    }
49}