Skip to main content

goods_json/
lib.rs

1use {goods::SimpleFormat, serde::de::DeserializeOwned};
2
3/// Format that treats bytes as JSON document and deserializes asset representation with `serde`.
4#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash)]
5pub struct JsonFormat;
6
7impl<A, K> SimpleFormat<A, K> for JsonFormat
8where
9    A: DeserializeOwned,
10{
11    fn decode_simple(self, _: K, bytes: Box<[u8]>) -> eyre::Result<A> {
12        serde_json::from_slice(&bytes).map_err(Into::into)
13    }
14}