pub fn to_vec<T>(value: &T) -> Result<Vec<u8>, Error> where
    T: Serialize + ?Sized