pub struct JsonStringValueCodec<T> { /* private fields */ }Expand description
Encodes and decodes one serializable value through UTF-8 JSON strings.
This type combines JsonStringValueEncoder and JsonStringValueDecoder
for registry-backed or bidirectional call sites. It holds no state between
calls, so it is Copy and Default, and encoding and decoding can share
one value through ValueEncoder and ValueDecoder.
§Type Parameters
T: Value type serialized to a JSON string and recovered from it.
§Examples
use qubit_codec::JsonStringValueCodec;
use qubit_codec::ValueDecoder;
use qubit_codec::ValueEncoder;
let mut codec = JsonStringValueCodec::<String>::new();
assert_eq!(codec.encode(&"hello".to_string()).unwrap(), r#""hello""#.to_string());
assert_eq!(codec.decode(r#""hello""#).unwrap(), "hello");Implementations§
Trait Implementations§
Source§impl<T: Clone> Clone for JsonStringValueCodec<T>
impl<T: Clone> Clone for JsonStringValueCodec<T>
impl<T: Copy> Copy for JsonStringValueCodec<T>
Source§impl<T: Debug> Debug for JsonStringValueCodec<T>
impl<T: Debug> Debug for JsonStringValueCodec<T>
Source§impl<T: Default> Default for JsonStringValueCodec<T>
impl<T: Default> Default for JsonStringValueCodec<T>
Source§impl<T> ValueDecoder<str> for JsonStringValueCodec<T>where
T: DeserializeOwned,
impl<T> ValueDecoder<str> for JsonStringValueCodec<T>where
T: DeserializeOwned,
Source§fn decode(&mut self, input: &str) -> Result<Self::Output, Self::Error>
fn decode(&mut self, input: &str) -> Result<Self::Output, Self::Error>
Deserializes input from a JSON string.
The codec holds no state, so this delegates to a freshly created
JsonStringValueDecoder and self stays usable for further calls.
§Parameters
input: Complete JSON value to deserialize.
§Returns
Returns an owned T deserialized independently of input’s lifetime.
§Errors
Returns serde_json::Error when input is not valid JSON or when a
valid JSON document does not match the shape required by T.
Source§impl<T> ValueEncoder<T> for JsonStringValueCodec<T>where
T: Serialize,
impl<T> ValueEncoder<T> for JsonStringValueCodec<T>where
T: Serialize,
Source§fn encode(&mut self, input: &T) -> Result<Self::Output, Self::Error>
fn encode(&mut self, input: &T) -> Result<Self::Output, Self::Error>
Serializes input into a JSON string.
The codec holds no state, so this delegates to a freshly created
JsonStringValueEncoder and self stays usable for further calls.
§Parameters
input: Value to serialize as JSON.
§Returns
Returns the serialized JSON text as an owned UTF-8 string.
§Errors
Returns serde_json::Error when input cannot be serialized to
JSON, including when a custom Serialize implementation fails or when
the value contains a map key that is not a string.