Skip to main content

AnyOwnedView

Struct AnyOwnedView 

Source
pub struct AnyOwnedView(/* private fields */);
Expand description

Self-contained, 'static owned view of a Any message.

Wraps ::buffa::OwnedView<AnyView<'static>>: the decoded view and the ::buffa::bytes::Bytes buffer it borrows from travel together, so the handle is 'static and Send + Sync — suitable for async handlers, spawned tasks, and anywhere a 'static bound is required.

Field accessors return borrows tied to &self. Use Self::view to get the full AnyView when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.

Implementations§

Source§

impl AnyOwnedView

Source

pub fn decode(bytes: Bytes) -> Result<Self, DecodeError>

Decode an owned view from a ::buffa::bytes::Bytes buffer.

The view borrows directly from the buffer’s data; the buffer is retained inside the returned handle.

§Errors

Returns ::buffa::DecodeError if the buffer contains invalid protobuf data.

Source

pub fn decode_with_options( bytes: Bytes, opts: &DecodeOptions, ) -> Result<Self, DecodeError>

Decode with custom ::buffa::DecodeOptions (recursion limit, max message size).

§Errors

Returns ::buffa::DecodeError if the buffer is invalid or exceeds the configured limits.

Source

pub fn from_owned(msg: &Any) -> Result<Self, DecodeError>

Build from an owned message via an encode → decode round-trip.

§Errors

Returns ::buffa::DecodeError if the re-encoded bytes are somehow invalid (should not happen for well-formed messages).

Source

pub fn view(&self) -> &AnyView<'_>

Borrow the full AnyView with its lifetime tied to &self.

Source

pub fn to_owned_message(&self) -> Result<Any, DecodeError>

Convert to the owned message type.

§Errors

Returns an error if re-materializing preserved unknown fields fails (e.g. the unknown-field limit is exceeded).

Source

pub fn bytes(&self) -> &Bytes

The underlying bytes buffer.

Source

pub fn into_bytes(self) -> Bytes

Consume the handle, returning the underlying bytes buffer.

Source

pub fn type_url(&self) -> &str

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one “/” character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading “.” is not accepted).

In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme http, https, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:

  • If no scheme is provided, https is assumed.
  • An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
  • Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)

Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one.

Schemes other than http, https (or the empty scheme) might be used with implementation specific semantics.

Field 1: type_url

Source

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

Must be a valid serialized protocol buffer of the above specified type.

Field 2: value

Trait Implementations§

Source§

impl AsRef<OwnedView<AnyView<'static>>> for AnyOwnedView

Source§

fn as_ref(&self) -> &OwnedView<AnyView<'static>>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for AnyOwnedView

Source§

fn clone(&self) -> AnyOwnedView

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 AnyOwnedView

Source§

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

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

impl From<AnyOwnedView> for OwnedView<AnyView<'static>>

Source§

fn from(wrapper: AnyOwnedView) -> Self

Converts to this type from the input type.
Source§

impl From<OwnedView<AnyView<'static>>> for AnyOwnedView

Source§

fn from(inner: OwnedView<AnyView<'static>>) -> Self

Converts to this type from the input type.

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