fencryption_lib/
metadata.rs1use std::{collections::TryReserveError, fmt::Debug, io};
4
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug)]
9pub enum ErrorKind {
10 SerializeError(rmp_serde::encode::Error),
11 DeserializeError(rmp_serde::decode::Error),
12 IoError(io::Error),
13 DecodeInt,
14 TryReserveError(TryReserveError),
15}
16
17type Result<T, E = ErrorKind> = std::result::Result<T, E>;
18
19pub fn encode<D>(data: D) -> Result<Vec<u8>>
21where
22 D: Serialize,
23{
24 Ok(rmp_serde::to_vec(&data).map_err(|e| ErrorKind::SerializeError(e))?)
25}
26
27pub fn decode<O>(bytes: &[u8]) -> Result<O>
29where
30 O: for<'a> Deserialize<'a>,
31{
32 Ok(rmp_serde::from_slice::<O>(&bytes.to_vec()).map_err(|e| ErrorKind::DeserializeError(e))?)
33}