asteroid_mq_model/codec/
json.rs

1use crate::EdgePayload;
2
3use super::Codec;
4
5#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Default)]
6pub struct Json;
7
8impl Codec for Json {
9    fn decode(&self, bytes: &[u8]) -> Result<EdgePayload, super::CodecError> {
10        serde_json::from_slice(bytes).map_err(super::CodecError::decode_error)
11    }
12    fn encode(&self, value: &EdgePayload) -> Result<Vec<u8>, super::CodecError> {
13        serde_json::to_vec(value).map_err(super::CodecError::encode_error)
14    }
15    fn kind(&self) -> super::CodecKind {
16        super::CodecKind::JSON
17    }
18}