dawproject_rs/api/
transport.rs1#![allow(unused)]
2
3use super::{real_parameter::RealParameter, time_signature_parameter::TimeSignatureParameter};
4
5use {
6 super::fake_rng,
7 fake::{Dummy, Fake, Faker},
8 serde::{Deserialize, Serialize},
9};
10
11#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
12pub enum TransportSequence {
13 Tempo(RealParameter),
14 TimeSignature(TimeSignatureParameter),
15}
16
17type TransportSequenceVec = Vec<TransportSequence>;
18
19#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
20pub struct Transport {
21 #[serde(rename = "$value", default)]
22 pub sequence: TransportSequenceVec,
23}
24
25impl Transport {
26 pub fn new_test() -> Self {
27 Self { sequence: vec![] }
28 }
29
30 pub fn new_fake() -> Self {
31 let o: Self = Faker.fake_with_rng(&mut fake_rng());
32 o
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use {super::Transport, quick_xml::se::to_string, std::error::Error};
39
40 #[test]
41 pub fn se_test() -> Result<(), Box<dyn Error>> {
42 let mut o = Transport::new_fake();
43
44 match to_string(&o) {
45 Ok(o) => println!("{}", o),
46 Err(err) => return Err(err.into()),
47 }
48
49 Ok(())
50 }
51}