fundamentum_sdk_mqtt/models/commands/
firmware_update.rs1use std::hash::{Hash, Hasher};
5
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
11pub struct FirmwareUpdateParameters {
12 pub target_device: TargetDeviceConfig,
14 pub version: VersionConfig,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
20pub struct TargetDeviceConfig {
21 pub serial_number: String,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
27pub struct VersionConfig {
28 pub id: u32,
30 pub name: String,
32 pub identifier: String,
34 #[serde(rename = "configuration_file_url")]
36 pub urls: Vec<String>,
37 #[serde(rename = "configuration")]
39 pub metadata: serde_json::Value,
40}
41
42impl Hash for VersionConfig {
43 fn hash<H: Hasher>(&self, state: &mut H) {
44 self.id.hash(state);
45 self.name.hash(state);
46 self.identifier.hash(state);
47 self.urls.hash(state);
48 self.metadata.to_string().hash(state);
49 }
50}