wasmflow_codec/
raw.rs

1use serde::{Deserialize, Serialize};
2use serde_value::to_value;
3
4use crate::error::CodecError;
5use crate::Result;
6
7#[doc(hidden)]
8pub fn raw_serialize<T>(
9  item: &T,
10) -> std::result::Result<serde_value::Value, serde_value::SerializerError>
11where
12  T: Serialize,
13{
14  to_value(item)
15}
16
17/// The standard function for serializing codec structs into a format that can be.
18/// used for message exchange between actor and host. Use of any other function to.
19/// serialize could result in breaking incompatibilities.
20pub fn serialize<T>(item: &T) -> Result<serde_value::Value>
21where
22  T: Serialize,
23{
24  raw_serialize(item).map_err(CodecError::SerializationError)
25}
26
27#[doc(hidden)]
28pub fn raw_deserialize<'de, T: Deserialize<'de>>(
29  value: serde_value::Value,
30) -> std::result::Result<T, serde_value::DeserializerError> {
31  value.deserialize_into()
32}
33
34/// The standard function for de-serializing codec structs from a format suitable.
35/// for message exchange between actor and host. Use of any other function to.
36/// deserialize could result in breaking incompatibilities.
37pub fn deserialize<'de, T: Deserialize<'de>>(value: serde_value::Value) -> Result<T> {
38  raw_deserialize(value).map_err(CodecError::DeserializationError)
39}