use bytes::Bytes;
use serde::{Serialize, de::DeserializeOwned};
pub fn bytes_to_struct<T: DeserializeOwned>(bytes: &[u8]) -> anyhow::Result<T> {
let v = serde_json::from_slice(bytes)?;
Ok(v)
}
pub fn struct_to_bytes<T: Serialize>(v: &T) -> anyhow::Result<Bytes> {
let bytes = serde_json::to_vec(v)?;
Ok(Bytes::from(bytes))
}
pub fn string_to_struct<T: DeserializeOwned>(str: &str) -> anyhow::Result<T> {
let v = serde_json::from_str(str)?;
Ok(v)
}
pub fn struct_to_string<T: Serialize>(v: &T) -> anyhow::Result<String> {
let str = serde_json::to_string(v)?;
Ok(str)
}