wled_json_api_library/structures/
nodes.rs1use serde;
2use serde::{Serialize, Deserialize};
3use crate::errors::WledJsonApiError;
4use crate::structures::none_function;
5
6
7#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct Nodes {
10 pub nodes: Vec<Node>,
11}
12
13
14impl TryFrom<&str> for Nodes{
15 type Error = WledJsonApiError;
16 fn try_from(str_in: &str) -> Result<Nodes, WledJsonApiError> {
17 serde_json::from_str(str_in).map_err(|e| {WledJsonApiError::SerdeError(e)})
18 }
19}
20
21#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
22#[serde(rename_all = "camelCase")]
23pub struct Node {
24 #[serde(skip_serializing_if = "Option::is_none")]
26 #[serde(default = "none_function")]
27 pub name: Option<String>,
28
29 #[serde(skip_serializing_if = "Option::is_none")]
42 #[serde(default = "none_function")]
43 #[serde(rename = "type")]
44 pub type_field: Option<u8>,
45
46 #[serde(skip_serializing_if = "Option::is_none")]
48 #[serde(default = "none_function")]
49 pub ip: Option<String>,
50
51 #[serde(skip_serializing_if = "Option::is_none")]
53 #[serde(default = "none_function")]
54 pub age: Option<u8>,
55
56 #[serde(skip_serializing_if = "Option::is_none")]
58 #[serde(default = "none_function")]
59 pub vid: Option<u32>,
60}