Skip to main content

ApiOwnedView

Struct ApiOwnedView 

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

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

Wraps ::buffa::OwnedView<ApiView<'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 ApiView when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.

Implementations§

Source§

impl ApiOwnedView

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: &Api) -> Result<Self, DecodeError>

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

§Errors

Returns ::buffa::DecodeError::MessageTooLarge if the message’s encoded size exceeds the 2 GiB protobuf limit, or another ::buffa::DecodeError if the re-encoded bytes are somehow invalid (should not happen for well-formed messages).

Source

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

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

Source

pub fn to_owned_message(&self) -> Api

Convert to the owned message type.

Infallible: this type’s constructors wire-decode their buffer, and a view produced by wire decoding always converts. Delegates to ::buffa::OwnedView::to_owned_message, whose contract also governs handles converted from a raw ::buffa::OwnedView.

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 name(&self) -> &str

The fully qualified name of this interface, including package name followed by the interface’s simple name.

Field 1: name

Source

pub fn methods(&self) -> &RepeatedView<'_, MethodView<'_>>

The methods of this interface, in unspecified order.

Field 2: methods

Source

pub fn options(&self) -> &RepeatedView<'_, OptionView<'_>>

Any metadata attached to the interface.

Field 3: options

Source

pub fn version(&self) -> &str

A version string for this interface. If specified, must have the form major-version.minor-version, as in 1.10. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here.

The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan.

The major version is also reflected in the package name of the interface, which must end in v<major-version>, as in google.feature.v1. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.

Field 4: version

Source

pub fn source_context(&self) -> &MessageFieldView<SourceContextView<'_>>

Source context for the protocol buffer service represented by this message.

Field 5: source_context

Source

pub fn mixins(&self) -> &RepeatedView<'_, MixinView<'_>>

Included interfaces. See Mixin.

Field 6: mixins

Source

pub fn syntax(&self) -> EnumValue<Syntax>

The source syntax of the service.

Field 7: syntax

Source

pub fn edition(&self) -> &str

The source edition string, only valid when syntax is SYNTAX_EDITIONS.

Field 8: edition

Trait Implementations§

Source§

impl AsRef<OwnedView<ApiView<'static>>> for ApiOwnedView

Source§

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

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

impl Clone for ApiOwnedView

Source§

fn clone(&self) -> ApiOwnedView

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 ApiOwnedView

Source§

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

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

impl From<ApiOwnedView> for OwnedView<ApiView<'static>>

Source§

fn from(wrapper: ApiOwnedView) -> Self

Converts to this type from the input type.
Source§

impl From<OwnedView<ApiView<'static>>> for ApiOwnedView

Source§

fn from(inner: OwnedView<ApiView<'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 = !

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.