ex3-serde 0.15.0

EX3 serialize/deserialize crate.
Documentation
use ciborium::{de::from_reader, ser::into_writer};

/// Serialize a value to a CBOR byte vector.
///
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))
}