use ciborium::{de::from_reader, ser::into_writer};
pub fn serialize<T>(value: &T) -> Result<Vec<u8>, String>
where
T: serde::Serialize,
{
let mut vec = Vec::new();
into_writer(&value, &mut vec)
.map_err(|e| format!("{:?}", e))
.map(|_| vec)
}
pub fn deserialize<T>(bytes: &[u8]) -> Result<T, String>
where
T: serde::de::DeserializeOwned,
{
let result = from_reader(bytes);
result.map_err(|e| format!("{:?}", e))
}