atomr-remote 0.1.0

Cross-process and cross-host actor messaging for atomr — TCP transport, framed PDU codec, ack'd delivery, endpoint state machine, watcher.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
//! JSON codec helpers (debug-friendly fallback).

use serde::{de::DeserializeOwned, Serialize};

use super::SerializeError;

pub fn json_encode<T: Serialize>(value: &T) -> Result<Vec<u8>, SerializeError> {
    serde_json::to_vec(value).map_err(|e| SerializeError::Encode(e.to_string()))
}

pub fn json_decode<T: DeserializeOwned>(bytes: &[u8]) -> Result<T, SerializeError> {
    serde_json::from_slice(bytes).map_err(|e| SerializeError::Decode(e.to_string()))
}