drisk_api/
node_update.rs

1use serde::{Deserialize, Serialize};
2
3/// Update type for the dRISK API.
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5#[serde(rename_all = "camelCase")]
6pub struct NodeUpdate {
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub label: Option<String>,
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub size: Option<f32>,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub url: Option<String>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub red: Option<u8>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub green: Option<u8>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub blue: Option<u8>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub show_label: Option<bool>,
21}
22
23impl std::ops::AddAssign for NodeUpdate {
24    fn add_assign(&mut self, other: NodeUpdate) {
25        if let Some(label) = other.label {
26            self.label = Some(label);
27        }
28        if let Some(size) = other.size {
29            self.size = Some(size);
30        }
31        if let Some(url) = other.url {
32            self.url = Some(url);
33        }
34        if let Some(red) = other.red {
35            self.red = Some(red);
36        }
37        if let Some(green) = other.green {
38            self.green = Some(green);
39        }
40        if let Some(blue) = other.blue {
41            self.blue = Some(blue);
42        }
43        if let Some(show_label) = other.show_label {
44            self.show_label = Some(show_label);
45        }
46    }
47}