Skip to main content

ValueWireRefV1

Struct ValueWireRefV1 

Source
pub struct ValueWireRefV1<'a> { /* private fields */ }
Expand description

Borrowed standalone V1 envelope for serialization without cloning.

Runtime JSON numbers must round trip to the same serde_json::Number under the strict qubit-json number model. A number that would change identity returns the JSON-gated JsonNumberNotRoundTrippable error; the error does not expose the number text.

§Type Parameters

  • 'a - Lifetime of the runtime payload borrowed for serialization.

§Examples

use qubit_value::{Value, ValueWireRefV1};

let value = Value::from(42_i32);
let wire = ValueWireRefV1::from_value(&value).unwrap();
let encoded = serde_json::to_string(&wire).unwrap();
assert_eq!(encoded, r#"{"version":1,"value":{"scalar":{"int32":42}}}"#);
let owned = qubit_value::ValueWireV1::try_from(Value::from(42_i32)).unwrap();
assert_eq!(encoded, serde_json::to_string(&owned).unwrap());

Implementations§

Source§

impl<'a> ValueWireRefV1<'a>

Source

pub fn from_value(value: &'a Value) -> Result<Self, ValueWireEncodeError>

Borrows a scalar after validating V1’s representational constraints.

§Parameters
  • value - Scalar runtime value to validate and borrow.
§Returns

A standalone borrowed V1 envelope containing the scalar.

§Errors

Returns ValueWireEncodeError when the scalar violates V1 numeric representation constraints, including the supported UTC year range for instants.

Source

pub fn from_values( values: &'a MultiValues, ) -> Result<Self, ValueWireEncodeError>

Borrows a collection after validating V1’s representational constraints.

§Parameters
  • values - Homogeneous runtime collection to validate and borrow.
§Returns

A standalone borrowed V1 envelope containing the collection.

§Errors

Returns ValueWireEncodeError when an element violates V1 numeric representation constraints, including the supported UTC year range for instants.

Source

pub fn from_container( value: &'a ValueContainer, ) -> Result<Self, ValueWireEncodeError>

Borrows an explicit shape after validating V1’s representational constraints.

§Parameters
  • value - Explicit scalar-or-collection value to validate and borrow.
§Returns

A standalone borrowed V1 envelope preserving the original shape.

§Errors

Returns ValueWireEncodeError when any contained value violates V1 numeric representation constraints, including the supported UTC year range for instants.

Source

pub const fn new(value: ValueWirePayloadRefV1<'a>) -> Self

Wraps an already validated borrowed payload.

§Parameters
  • value - Validated borrowed payload to place in the V1 envelope.
§Returns

A standalone borrowed V1 envelope.

Source

pub fn to_json_vec(&self) -> Result<Vec<u8>, ValueWireEncodeError>

Available on crate feature json only.

Encodes the borrowed V1 envelope into a compact JSON vector.

§Returns

Compact UTF-8 JSON bytes for the complete V1 envelope.

§Errors

Returns ValueWireEncodeError for resource or serialization failures.

Source

pub fn to_json_vec_with_limits( &self, limits: JsonEncodeLimits, ) -> Result<Vec<u8>, ValueWireEncodeError>

Available on crate feature json only.

Encodes the borrowed V1 envelope with explicit JSON resource limits.

§Parameters
  • limits - Resource limits enforced during JSON encoding.
§Returns

Compact UTF-8 JSON bytes for the complete V1 envelope.

Runs a conservative payload preflight before encoding, then enforces limits authoritatively while encoding the full envelope. The preflight may report a lower-bound budget error and does not bound every preparation allocation.

§Errors

Returns ValueWireEncodeError when preflight or final encoding exceeds limits, or Serde rejects the envelope.

Source

pub fn to_json_writer<W>(&self, writer: W) -> Result<(), ValueWireEncodeError>
where W: Write,

Available on crate feature json only.

Encodes the borrowed V1 envelope to a writer with default limits.

§Type Parameters
  • W - Destination writer type.
§Parameters
  • writer - Destination receiving the complete V1 JSON envelope.
§Returns

Ok(()) after the complete envelope is written.

The complete document is buffered and admitted before this method writes its bytes to the destination. Preflight, serialization, or budget rejection does not write this document. An I/O error may leave an accepted prefix in the writer; do not blindly retry a complete document on the same destination.

This method does not explicitly flush the writer. Success means the writer accepted all document bytes, not that they were flushed, persisted, or received by a remote peer. Pass &mut writer to retain ownership of a buffered writer, then call flush() and handle its error separately. Passing an owned writer may invoke that writer’s drop behavior; errors from an implicit drop-time flush are not returned by this method.

§Errors

Returns ValueWireEncodeError for resource, serialization, or writer failures.

Source

pub fn to_json_writer_with_limits<W>( &self, writer: W, limits: JsonEncodeLimits, ) -> Result<(), ValueWireEncodeError>
where W: Write,

Available on crate feature json only.

Encodes the borrowed V1 envelope to a writer with explicit limits.

§Type Parameters
  • W - Destination writer type.
§Parameters
  • writer - Destination receiving the complete V1 JSON envelope.
  • limits - Resource limits enforced during JSON encoding.
§Returns

Ok(()) after the complete envelope is written.

Runs a conservative payload preflight before encoding, then enforces limits authoritatively while encoding the full envelope. The preflight may report a lower-bound budget error and does not bound every preparation allocation.

The complete document is buffered and admitted before this method writes its bytes to the destination. Preflight, serialization, or budget rejection does not write this document. An I/O error may leave an accepted prefix in the writer; do not blindly retry a complete document on the same destination.

This method does not explicitly flush the writer. Success means the writer accepted all document bytes, not that they were flushed, persisted, or received by a remote peer. Pass &mut writer to retain ownership of a buffered writer, then call flush() and handle its error separately. Passing an owned writer may invoke that writer’s drop behavior; errors from an implicit drop-time flush are not returned by this method.

§Errors

Returns ValueWireEncodeError when preflight or final encoding exceeds limits, Serde rejects the envelope, or writer rejects output.

Trait Implementations§

Source§

impl Serialize for ValueWireRefV1<'_>

Source§

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

Serializes the borrowed runtime shape through the V1 envelope.

§Type Parameters
  • S - Serde serializer defining the output format and error type.
§Parameters
  • serializer - Consumed serializer receiving the version and payload.
§Returns

The serializer’s success value after encoding the complete V1 envelope.

§Errors

Returns the serializer’s error if encoding the envelope or payload fails.

Source§

impl<'a> TryFrom<&'a MultiValues> for ValueWireRefV1<'a>

Source§

type Error = ValueWireEncodeError

Validation failure when the borrowed input cannot be represented in V1.

Source§

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

Validates and borrows the input without cloning its payload.

§Parameters
  • values - Homogeneous runtime collection to validate and borrow for 'a.
§Returns

A borrowed V1 envelope preserving the input shape.

§Errors

Returns the same representational validation errors as Self::from_values.

Source§

impl<'a> TryFrom<&'a Value> for ValueWireRefV1<'a>

Source§

type Error = ValueWireEncodeError

Validation failure when the borrowed input cannot be represented in V1.

Source§

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

Validates and borrows the input without cloning its payload.

§Parameters
  • value - Scalar runtime value to validate and borrow for 'a.
§Returns

A borrowed V1 envelope preserving the input shape.

§Errors

Returns the same representational validation errors as Self::from_value.

Source§

impl<'a> TryFrom<&'a ValueContainer> for ValueWireRefV1<'a>

Source§

type Error = ValueWireEncodeError

Validation failure when the borrowed input cannot be represented in V1.

Source§

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

Validates and borrows the input without cloning its payload.

§Parameters
  • value - Explicit scalar-or-collection value to validate and borrow for 'a.
§Returns

A borrowed V1 envelope preserving the input shape.

§Errors

Returns the same representational validation errors as Self::from_container.

Auto Trait Implementations§

§

impl<'a> Forget for ValueWireRefV1<'a>

§

impl<'a> Freeze for ValueWireRefV1<'a>

§

impl<'a> RefUnwindSafe for ValueWireRefV1<'a>

§

impl<'a> Send for ValueWireRefV1<'a>

§

impl<'a> Sync for ValueWireRefV1<'a>

§

impl<'a> Unpin for ValueWireRefV1<'a>

§

impl<'a> UnsafeUnpin for ValueWireRefV1<'a>

§

impl<'a> UnwindSafe for ValueWireRefV1<'a>

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> 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

Returns the owned value unchanged as the default.

§Returns

The input value, moved without cloning.

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.