asteroid_mq_model/codec/
json.rs1use 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}