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 = "battery_level")]
	pub battery_level: u8,
    #[serde(rename = "charging")]
	pub charging: bool,
    #[serde(rename = "external_power")]
	pub external_power: bool,
    #[serde(rename = "battery_volts")]
	pub battery_volts: u16,
}

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))
    }
}