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 without requiring those traits on T;
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 for JsonStringValueCodec<T>
impl<T> Clone for JsonStringValueCodec<T>
impl<T> Copy for JsonStringValueCodec<T>
Source§impl<T: Debug> Debug for JsonStringValueCodec<T>
impl<T: Debug> Debug for JsonStringValueCodec<T>
Source§impl<T> Default for JsonStringValueCodec<T>
impl<T> 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 a map
key cannot be represented as a JSON object key.