Skip to main content

ValueWireV1

Struct ValueWireV1 

Source
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

Source

pub const VERSION: u8 = VALUE_WIRE_V1_VERSION

Numeric version emitted and accepted by this DTO.

Source

pub const fn new(value: ValueWirePayloadV1) -> Self

Creates a V1 DTO from an explicit scalar-or-collection container.

§Parameters
  • value - Runtime container whose exact type and shape are preserved.
§Returns

A V1 DTO containing value.

Source

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.

Source

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.

Source

pub const fn container(&self) -> &ValueContainer

Returns the runtime container represented by this DTO.

§Returns

A shared reference to the preserved runtime container.

Source

pub fn into_container(self) -> ValueContainer

Consumes the DTO and returns its runtime container.

§Returns

The preserved runtime container.

Trait Implementations§

Source§

impl Clone for ValueWireV1

Source§

fn clone(&self) -> ValueWireV1

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ValueWireV1

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ValueWireV1

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserializes a validated V1 runtime container into the DTO.

Source§

impl Eq for ValueWireV1

Source§

impl From<ValueWireV1> for ValueContainer

Source§

fn from(value: ValueWireV1) -> Self

Unwraps the runtime container from a V1 DTO.

Source§

impl Hash for ValueWireV1

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ValueWireV1

Source§

fn eq(&self, other: &ValueWireV1) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for ValueWireV1

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serializes the contained runtime shape through the V1 contract.

Source§

impl StructuralPartialEq for ValueWireV1

Source§

impl TryFrom<MultiValues> for ValueWireV1

Source§

fn try_from(values: MultiValues) -> Result<Self, Self::Error>

Wraps a runtime collection in a V1 DTO.

Source§

type Error = ValueWireEncodeError

The type returned in the event of a conversion error.
Source§

impl TryFrom<Value> for ValueWireV1

Source§

fn try_from(value: Value) -> Result<Self, Self::Error>

Wraps a runtime scalar in a V1 DTO.

Source§

type Error = ValueWireEncodeError

The type returned in the event of a conversion error.
Source§

impl TryFrom<ValueContainer> for ValueWireV1

Source§

fn try_from(value: ValueContainer) -> Result<Self, Self::Error>

Wraps an explicit runtime shape in a V1 DTO.

Source§

type Error = ValueWireEncodeError

The type returned in the event of a conversion error.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoValueDefault<T> for T

Source§

fn into_value_default(self) -> T

Converts this argument into the default value. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.