pub struct ValueWireV1 { /* private fields */ }Expand description
Stable version-one wire DTO for a scalar or homogeneous collection.
For a given serializer and value, output is byte-stable with canonical field and object-key order, including recursively nested JSON objects. V1 is closed: existing tags, shapes, and payload representations cannot change, and future runtime data types require a new wire version instead of extending V1.
§Resource limits
The generic Deserialize implementation is intended
for already-bounded embedded documents and does not enforce message-size or
structural limits. Use ValueWireV1::decode_json_slice or
ValueWireV1::decode_json_slice_with_limits for untrusted complete JSON
input.
Implementations§
Source§impl ValueWireV1
impl ValueWireV1
Sourcepub const VERSION: u8 = VALUE_WIRE_V1_VERSION
pub const VERSION: u8 = VALUE_WIRE_V1_VERSION
Numeric version emitted and accepted by this DTO.
Sourcepub const fn new(value: ValueWirePayloadV1) -> Self
pub const fn new(value: ValueWirePayloadV1) -> Self
Sourcepub fn decode_json_slice(input: &[u8]) -> Result<Self, ValueWireDecodeError>
pub fn decode_json_slice(input: &[u8]) -> Result<Self, ValueWireDecodeError>
Decodes a V1 JSON wire value using the default structural limits.
The complete input length and decoded structure are checked before the
value is returned. Embedded protocols should share one
crate::WireBudget across their complete document.
§Parameters
input- Complete UTF-8 JSON document to decode.
§Returns
The decoded V1 wire DTO.
§Errors
Returns a limit error when the input or decoded structure is too large,
or ValueWireDecodeError::InvalidJson for malformed input.
Sourcepub fn decode_json_slice_with_limits(
input: &[u8],
limits: WireLimits,
) -> Result<Self, ValueWireDecodeError>
pub fn decode_json_slice_with_limits( input: &[u8], limits: WireLimits, ) -> Result<Self, ValueWireDecodeError>
Decodes a V1 JSON wire value using explicit structural limits.
The complete input length and decoded structure are checked before the
value is returned. Embedded values should be checked through the outer
protocol’s shared crate::WireBudget.
§Parameters
input- Complete UTF-8 JSON document to decode.limits- Shared encoded-input and structural limits.
§Returns
The decoded V1 wire DTO.
§Errors
Returns a limit error when input or its decoded structure exceeds
limits, or ValueWireDecodeError::InvalidJson for malformed input.
Sourcepub const fn container(&self) -> &ValueContainer
pub const fn container(&self) -> &ValueContainer
Returns the runtime container represented by this DTO.
§Returns
A shared reference to the preserved runtime container.
Sourcepub fn into_container(self) -> ValueContainer
pub fn into_container(self) -> ValueContainer
Trait Implementations§
Source§impl Clone for ValueWireV1
impl Clone for ValueWireV1
Source§fn clone(&self) -> ValueWireV1
fn clone(&self) -> ValueWireV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ValueWireV1
impl Debug for ValueWireV1
Source§impl<'de> Deserialize<'de> for ValueWireV1
impl<'de> Deserialize<'de> for ValueWireV1
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserializes a validated V1 runtime container into the DTO.
impl Eq for ValueWireV1
Source§impl From<ValueWireV1> for ValueContainer
impl From<ValueWireV1> for ValueContainer
Source§fn from(value: ValueWireV1) -> Self
fn from(value: ValueWireV1) -> Self
Unwraps the runtime container from a V1 DTO.
Source§impl Hash for ValueWireV1
impl Hash for ValueWireV1
Source§impl PartialEq for ValueWireV1
impl PartialEq for ValueWireV1
Source§impl Serialize for ValueWireV1
impl Serialize for ValueWireV1
impl StructuralPartialEq for ValueWireV1
Source§impl TryFrom<MultiValues> for ValueWireV1
impl TryFrom<MultiValues> for ValueWireV1
Source§fn try_from(values: MultiValues) -> Result<Self, Self::Error>
fn try_from(values: MultiValues) -> Result<Self, Self::Error>
Wraps a runtime collection in a V1 DTO.
Source§type Error = ValueWireEncodeError
type Error = ValueWireEncodeError
Source§impl TryFrom<Value> for ValueWireV1
impl TryFrom<Value> for ValueWireV1
Source§impl TryFrom<ValueContainer> for ValueWireV1
impl TryFrom<ValueContainer> for ValueWireV1
Source§fn try_from(value: ValueContainer) -> Result<Self, Self::Error>
fn try_from(value: ValueContainer) -> Result<Self, Self::Error>
Wraps an explicit runtime shape in a V1 DTO.