dawproject_rs/api/device_mods/
builtin_device.rs1#![allow(unused)]
2use super::super::add_one_get;
3
4use {
5 super::super::fake_rng,
6 super::{device::DeviceElements, device_role::DeviceRole},
7 fake::{Dummy, Fake, Faker},
8 serde::{Deserialize, Serialize},
9};
10#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
11pub struct BuiltinDevice {
12 #[serde(rename = "@id")]
13 #[serde(skip_serializing_if = "Option::is_none")]
14 id: Option<String>,
15 #[serde(rename = "$value", default)]
16 device_elements: DeviceElements,
17 #[serde(rename = "@deviceID")]
18 #[serde(skip_serializing_if = "Option::is_none")]
19 device_id: Option<String>,
20 #[serde(rename = "@deviceName")]
21 #[serde(skip_serializing_if = "Option::is_none")]
22 device_name: Option<String>,
23 #[serde(rename = "@deviceRole")]
24 #[serde(skip_serializing_if = "Option::is_none")]
25 device_role: Option<DeviceRole>,
26 #[serde(rename = "@deviceVendor")]
27 #[serde(skip_serializing_if = "Option::is_none")]
28 device_vendor: Option<String>,
29 #[serde(rename = "@loaded")]
30 #[serde(skip_serializing_if = "Option::is_none")]
31 loaded: Option<bool>,
32}
33
34impl BuiltinDevice {
35 pub fn new_test() -> Self {
36 Self {
37 id: Some(format!("id{}", add_one_get())),
38 device_elements: vec![],
39 device_id: None,
40 device_name: None,
41 device_role: None,
42 device_vendor: None,
43 loaded: None,
44 }
45 }
46
47 pub fn new_fake() -> Self {
48 let o: Self = Faker.fake_with_rng(&mut fake_rng());
49 o
50 }
51}
52
53#[cfg(test)]
54mod tests {
55 use {super::BuiltinDevice, quick_xml::se::to_string, std::error::Error};
56
57 #[test]
58 pub fn se_test() -> Result<(), Box<dyn Error>> {
59 let mut o = BuiltinDevice::new_fake();
60
61 match to_string(&o) {
62 Ok(o) => println!("{}", o),
63 Err(err) => return Err(err.into()),
64 }
65
66 Ok(())
67 }
68}