viiper-client 0.7.0

VIIPER Client Library for Rust
Documentation
// This file is auto-generated by VIIPER codegen. DO NOT EDIT.

use std::collections::HashMap;


#[derive(Debug, Clone, Default, serde::Serialize, serde::Deserialize)]
pub struct MetaState {
    #[serde(rename = "serial_number")]
	pub serial_number: String,
    #[serde(rename = "mac_address")]
	pub mac_address: String,
    #[serde(rename = "board")]
	pub board: String,
    #[serde(rename = "build_time")]
	pub build_time: String,
    #[serde(rename = "battery_status")]
	pub battery_status: u8,
    #[serde(rename = "temperature_celsius")]
	pub temperature_celsius: f64,
    #[serde(rename = "battery_voltage")]
	pub battery_voltage: f64,
    #[serde(rename = "shell_color")]
	pub shell_color: String,
}

impl MetaState {
    pub fn to_map(&self) -> HashMap<String, serde_json::Value> {
        match serde_json::to_value(self) {
            Ok(serde_json::Value::Object(obj)) => obj.into_iter().collect(),
            _ => HashMap::new(),
        }
    }

    pub fn from_map(map: &HashMap<String, serde_json::Value>) -> Result<Self, serde_json::Error> {
        let obj: serde_json::Map<String, serde_json::Value> = map.clone().into_iter().collect();
        serde_json::from_value(serde_json::Value::Object(obj))
    }
}