dawproject_rs/api/device_mods/
plugin.rs1#![allow(unused)]
2
3use super::{device::DeviceElements, device_role::DeviceRole};
4
5use {
6 super::{super::add_one_get, super::fake_rng},
7 fake::{Dummy, Fake, Faker},
8 serde::{Deserialize, Serialize},
9};
10
11#[derive(Debug, Deserialize, Serialize, Clone, Dummy)]
12pub struct Plugin {
13 #[serde(rename = "@id")]
15 id: Option<String>,
16 #[serde(rename = "$value", default)]
17 device_elements: DeviceElements,
18 #[serde(rename = "@deviceID")]
19 #[serde(skip_serializing_if = "Option::is_none")]
20 device_id: Option<String>,
21 #[serde(rename = "@deviceName")]
22 #[serde(skip_serializing_if = "Option::is_none")]
23 device_name: Option<String>,
24 #[serde(rename = "@deviceRole")]
25 #[serde(skip_serializing_if = "Option::is_none")]
26 device_role: Option<DeviceRole>,
27 #[serde(rename = "@deviceVendor")]
28 #[serde(skip_serializing_if = "Option::is_none")]
29 device_vendor: Option<String>,
30 #[serde(rename = "@loaded")]
31 #[serde(skip_serializing_if = "Option::is_none")]
32 loaded: Option<bool>,
33 #[serde(rename = "@pluginVersion")]
34 #[serde(skip_serializing_if = "Option::is_none")]
35 plugin_version: Option<String>,
36}
37
38impl Plugin {
39 pub fn new_test() -> Self {
40 Self {
41 id: Some(format!("id{}", add_one_get())),
42 device_elements: vec![],
43 device_id: None,
44 device_name: None,
45 device_role: None,
46 device_vendor: None,
47 loaded: None,
48 plugin_version: 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::Plugin, quick_xml::se::to_string, std::error::Error};
61
62 #[test]
63 pub fn se_test() -> Result<(), Box<dyn Error>> {
64 let mut o = Plugin::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}