asteroid-mq-model 0.1.0-alpha.16

Basic models for asteroid-mq
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::EdgePayload;

use super::Codec;

#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Default)]
pub struct Json;

impl Codec for Json {
    fn decode(&self, bytes: &[u8]) -> Result<EdgePayload, super::CodecError> {
        serde_json::from_slice(bytes).map_err(super::CodecError::decode_error)
    }
    fn encode(&self, value: &EdgePayload) -> Result<Vec<u8>, super::CodecError> {
        serde_json::to_vec(value).map_err(super::CodecError::encode_error)
    }
    fn kind(&self) -> super::CodecKind {
        super::CodecKind::JSON
    }
}