tnnl 0.1.17

tnnl gives you full control over whether and when your IoT devices should be reachable from the internet
use serde::{Deserialize, Serialize};

use crate::apperror::AppError;

#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct ConnectInfo {
    #[serde(rename = "host")]
    pub host: Option<String>,
    #[serde(rename = "port")]
    pub port: u16,
}

impl ConnectInfo {
    /*
    pub fn to_json(&self) -> Result<String, AppError> {
        Ok(serde_json::to_string(self).map_err(|_| AppError::new("serialization failed"))?)
    }

    pub fn to_json_buffer(&self) -> Result<Vec<u8>, AppError> {
        Ok(serde_json::to_vec(self).map_err(|_| AppError::new("serialization failed"))?)
    }

    pub fn from_json(str: &String) -> Result<ConnectInfo, AppError> {
        Ok(serde_json::from_str(str).map_err(|_| AppError::new("deserialization failed"))?)
    }
     */

    pub fn from_json_buffer(data: &[u8]) -> Result<ConnectInfo, AppError> {
        serde_json::from_slice(data).map_err(|_| AppError::new("deserialization failed"))
    }
}