use std::convert::TryFrom;
use bytes::BytesMut;
use crate::Sbp;
use super::{JsonError, JsonOutput};
pub type JsonMap = serde_json::Map<String, serde_json::Value>;
impl TryFrom<crate::Sbp> for JsonMap {
type Error = JsonError;
fn try_from(msg: Sbp) -> Result<Self, Self::Error> {
let mut frame = BytesMut::with_capacity(crate::BUFLEN);
let mut payload = String::with_capacity(crate::BUFLEN);
let output = JsonOutput::new_from_sbp(&mut payload, &mut frame, &msg)?;
let output = serde_json::to_value(output)?;
let output: serde_json::Map<String, serde_json::Value> = serde_json::from_value(output)?;
Ok(output)
}
}