crypto_seal/format/
postcard.rs1use crate::error::Error;
2use crate::format::Format;
3use alloc::vec::Vec;
4use serde::Serialize;
5use serde::de::DeserializeOwned;
6
7#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash)]
8pub struct Postcard;
9
10impl Format for Postcard {
11 fn serialize<T: Serialize + ?Sized>(value: &T) -> crate::Result<Vec<u8>> {
12 postcard::to_allocvec(value).map_err(Error::from)
13 }
14
15 fn deserialize<T: DeserializeOwned>(bytes: &[u8]) -> crate::Result<T> {
16 postcard::from_bytes(bytes).map_err(Error::from)
17 }
18}