Preview of the proposed up-rust native-frame-model branch (up-rust b6b99c6d, up-spec f0e9b17) — not released documentation. branch · write-up

Struct UOwnedFrame

Source
pub struct UOwnedFrame<S = Validated> { /* private fields */ }
Expand description

Owned, serialization-neutral native uProtocol frame.

UOwnedFrame carries Phase 01 frame metadata plus optional owned payload bytes. It is available only with the owned-frame-transport feature and is additive to the ordinary UTransport/UMessage compatibility path.

Implementations§

Source§

impl UOwnedFrame<Validated>

Source

pub fn new( metadata: UFrameMetadata, payload: Option<Bytes>, ) -> Result<Self, UFrameMetadataError>

Creates a frame from metadata and optional payload bytes after validation.

§Errors

Returns an error if metadata validation fails or payload presence does not match metadata payload encoding presence.

Source

pub fn new_unchecked( metadata: UFrameMetadata, payload: Option<Bytes>, ) -> UOwnedFrame<Unvalidated>

Creates a frame without validation.

Source

pub fn with_payload( metadata: UFrameMetadata, payload: impl Into<Bytes>, ) -> Result<Self, UFrameMetadataError>

Creates a payload-bearing frame after validation.

§Errors

Returns an error if metadata validation fails or the metadata has no payload encoding.

Source

pub fn without_payload( metadata: UFrameMetadata, ) -> Result<Self, UFrameMetadataError>

Creates a no-payload frame after validation.

§Errors

Returns an error if metadata validation fails or the metadata still has a payload encoding.

Source§

impl UOwnedFrame<Unvalidated>

Source

pub fn validate(self) -> Result<UOwnedFrame<Validated>, UFrameMetadataError>

Validates the frame, transitioning it to the Validated state.

This is the only way from Unvalidated to Validated; the state transition IS the validation, and every transport API accepts only the validated state.

§Errors

Returns an error if metadata is invalid, if payload bytes are present without encoding metadata, or if encoding metadata is present without payload bytes.

Source§

impl UOwnedFrame<Validated>

Source

pub fn to_umessage(&self) -> Result<UMessage, UFrameMetadataError>

Projects this frame into a UMessage — the compatibility bridge back to the UTransport family.

§Errors

Returns an error if the frame metadata cannot be represented as message attributes.

Source§

impl<S> UOwnedFrame<S>

Source

pub fn metadata(&self) -> &UFrameMetadata

Returns the frame metadata.

Source

pub fn payload(&self) -> Option<&Bytes>

Returns the payload bytes when the frame carries a payload.

Source

pub fn payload_bytes(&self) -> &[u8]

Returns the payload bytes, or an empty slice when payload is absent.

Use Self::payload when distinguishing absent payload from present empty payload matters.

Source

pub fn has_payload(&self) -> bool

Returns whether the frame carries payload bytes, including present empty payloads.

Source

pub fn into_metadata(self) -> UFrameMetadata

Consumes the frame and returns its metadata.

Source

pub fn into_payload(self) -> Option<Bytes>

Consumes the frame and returns its optional payload bytes.

Source

pub fn into_parts(self) -> (UFrameMetadata, Option<Bytes>)

Consumes the frame and returns metadata plus optional payload bytes.

Trait Implementations§

Source§

impl<S: Clone> Clone for UOwnedFrame<S>

Source§

fn clone(&self) -> UOwnedFrame<S>

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<S: Debug> Debug for UOwnedFrame<S>

Source§

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

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

impl<S: PartialEq> PartialEq for UOwnedFrame<S>

Source§

fn eq(&self, other: &UOwnedFrame<S>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl UFrameView for UOwnedFrame

Source§

type PayloadReader<'a> = Cursor<&'a [u8]> where Self: 'a

Reader over the payload bytes in order.
Source§

type PayloadSlices<'a> = IntoIter<&'a [u8]> where Self: 'a

Iterator over the payload’s storage segments in order.
Source§

fn metadata(&self) -> &UFrameMetadata

Returns the native frame metadata.
Source§

fn payload_len(&self) -> usize

Returns the number of application payload bytes visible through this view.
Source§

fn has_payload(&self) -> bool

Returns whether this view carries a payload, including a present empty payload.
Source§

fn payload_reader(&self) -> Self::PayloadReader<'_>

Returns an ordered reader over the application payload bytes.
Source§

fn payload_slices(&self) -> Self::PayloadSlices<'_>

Returns ordered borrowed payload slices.
Source§

fn try_contiguous_payload(&self) -> Option<&[u8]>

Returns a contiguous borrowed payload view when this view can provide one without copying.
Source§

fn decode_payload_from_reader_as<C, T>(&self) -> Result<T, UWireError>

Decodes this frame view from its ordered payload reader with codec C. Read more
Source§

impl<S> StructuralPartialEq for UOwnedFrame<S>

Auto Trait Implementations§

§

impl<S = Validated> !Freeze for UOwnedFrame<S>

§

impl<S> RefUnwindSafe for UOwnedFrame<S>
where S: RefUnwindSafe,

§

impl<S> Send for UOwnedFrame<S>
where S: Send,

§

impl<S> Sync for UOwnedFrame<S>
where S: Sync,

§

impl<S> Unpin for UOwnedFrame<S>
where S: Unpin,

§

impl<S> UnwindSafe for UOwnedFrame<S>
where S: UnwindSafe,

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
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<TCore> UWithNativePrefixWire for TCore

Source§

fn into_native_prefix_wire_transport<W>( self, wire: W, ) -> UWireTransport<TCore, W, NativePrefixFrameMetadataCodec>
where W: UWire,

Wraps this core with an external or custom selected wire using canonical metadata.
Source§

fn into_protobuf_transport( self, ) -> UWireTransport<TCore, ProtobufWire, NativePrefixFrameMetadataCodec>

Wraps this core with the Protocol Buffers selected-wire profile.
Source§

fn into_stable_container_transport( self, ) -> UWireTransport<TCore, StableContainerWireFormat, NativePrefixFrameMetadataCodec>

Wraps this core with the stable-container selected-wire profile.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more