Skip to main content

Api

Struct Api 

Source
pub struct Api {
    pub name: String,
    pub methods: Vec<Method>,
    pub options: Vec<Option>,
    pub version: String,
    pub source_context: MessageField<SourceContext, Inline<SourceContext>>,
    pub mixins: Vec<Mixin>,
    pub syntax: EnumValue<Syntax>,
    pub edition: String,
    /* private fields */
}
Expand description

Api is a light-weight descriptor for an API Interface.

Interfaces are also described as “protocol buffer services” in some contexts, such as by the “service” keyword in a .proto file, but they are different from API Services, which represent a concrete implementation of an interface as opposed to simply a description of methods and bindings. They are also sometimes simply referred to as “APIs” in other contexts, such as the name of this message itself. See https://cloud.google.com/apis/design/glossary for detailed terminology.

New usages of this message as an alternative to ServiceDescriptorProto are strongly discouraged. This message does not reliability preserve all information necessary to model the schema and preserve semantics. Instead make use of FileDescriptorSet which preserves the necessary information.

Fields§

§name: String

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

Field 1: name

§methods: Vec<Method>

The methods of this interface, in unspecified order.

Field 2: methods

§options: Vec<Option>

Any metadata attached to the interface.

Field 3: options

§version: String

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_context: MessageField<SourceContext, Inline<SourceContext>>

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

Field 5: source_context

§mixins: Vec<Mixin>

Included interfaces. See Mixin.

Field 6: mixins

§syntax: EnumValue<Syntax>

The source syntax of the service.

Field 7: syntax

§edition: String

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

Field 8: edition

Implementations§

Source§

impl Api

Source

pub const TYPE_URL: &'static str = "type.googleapis.com/google.protobuf.Api"

Protobuf type URL for this message, for use with Any::pack and Any::unpack_if.

Format: type.googleapis.com/<fully.qualified.TypeName>

Trait Implementations§

Source§

impl<'arbitrary> Arbitrary<'arbitrary> for Api

Available on crate feature arbitrary only.
Source§

fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
Source§

fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
Source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

impl Clone for Api

Source§

fn clone(&self) -> Api

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 Api

Source§

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

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

impl Default for Api

Source§

fn default() -> Api

Returns the “default value” for a type. Read more
Source§

impl DefaultInstance for Api

Source§

fn default_instance() -> &'static Self

Return a reference to the single default instance of this type.
Source§

impl ExtensionSet for Api

Source§

const PROTO_FQN: &'static str = "google.protobuf.Api"

Fully-qualified proto type name of this message (no leading dot), e.g. "google.protobuf.FieldOptions". Read more
Source§

fn unknown_fields(&self) -> &UnknownFields

Immutable access to the extendee’s unknown-field storage.
Source§

fn unknown_fields_mut(&mut self) -> &mut UnknownFields

Mutable access to the extendee’s unknown-field storage.
Source§

fn extension<C>(&self, ext: &Extension<C>) -> <C as ExtensionCodec>::Output
where C: ExtensionCodec,

Read an extension value. Read more
Source§

fn set_extension<C>( &mut self, ext: &Extension<C>, value: <C as ExtensionCodec>::Value, )
where C: ExtensionCodec,

Write an extension value, replacing any prior occurrences. Read more
Source§

fn try_set_extension<C>( &mut self, ext: &Extension<C>, value: <C as ExtensionCodec>::Value, ) -> Result<(), EncodeError>
where C: ExtensionCodec,

Write an extension value, replacing any prior occurrences — returning an error instead of panicking if a message-typed value’s encoded size exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Read more
Source§

fn has_extension<C>(&self, ext: &Extension<C>) -> bool
where C: ExtensionCodec,

Returns true if any record at the extension’s field number is present. Read more
Source§

fn clear_extension<C>(&mut self, ext: &Extension<C>)
where C: ExtensionCodec,

Remove all records at the extension’s field number. Read more
Source§

fn extension_or_default<C>( &self, ext: &Extension<C>, ) -> <C as ExtensionCodec>::Value
where C: ExtensionCodec<Output = Option<<C as ExtensionCodec>::Value>>, <C as ExtensionCodec>::Value: Default,

Read a singular extension value, returning the proto2 [default = ...] value if absent, or the type’s Default if no proto default was declared. Read more
Source§

impl HasMessageView for Api

Source§

type View<'a> = ApiView<'a>

The zero-copy view of Self, borrowing from a buffer with lifetime 'a.
Source§

type ViewHandle = ApiOwnedView

The generated 'static owned-view handle for Self (FooOwnedView).
Source§

fn decode_view(buf: &[u8]) -> Result<Self::View<'_>, DecodeError>

Decode a borrowed View from a byte slice. Read more
Source§

fn decode_view_with_options<'a>( buf: &'a [u8], opts: &DecodeOptions, ) -> Result<Self::View<'a>, DecodeError>

Decode a borrowed View under custom DecodeOptions (recursion limit, max message size, unknown-field limit). Read more
Source§

fn decode_view_handle(bytes: Bytes) -> Result<Self::ViewHandle, DecodeError>

Decode a ViewHandle from a Bytes buffer. Read more
Source§

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

Decode a ViewHandle with custom DecodeOptions (recursion limit, max message size). Read more
Source§

impl Message for Api

Source§

fn compute_size(&self, __cache: &mut SizeCache) -> u32

Returns the total encoded size in bytes.

Accumulates in u64 (which cannot overflow for in-memory data) and saturates to u32 at return, so a message whose encoded size exceeds the 2 GiB protobuf limit yields a value above ::buffa::MAX_MESSAGE_BYTES that the encode entry points reject, never a silently wrapped size.

Source§

fn write_to(&self, __cache: &mut SizeCache, buf: &mut impl EncodeSink)

Write this message’s encoded bytes to a buffer, consuming nested-message sizes from cache (populated by a prior compute_size call on the same cache). Read more
Source§

fn merge_field( &mut self, tag: Tag, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Processes a single already-decoded tag and its associated field data from buf. Read more
Source§

fn clear(&mut self)

Clear all fields to their default values.
Source§

fn encode(&self, buf: &mut impl EncodeSink)

Compute size, then write. This is the primary encoding API. Read more
Source§

fn try_encode(&self, buf: &mut impl EncodeSink) -> Result<(), EncodeError>

Encode, returning an error instead of panicking if the encoded size exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Read more
Source§

fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl EncodeSink)

Encode using a caller-supplied SizeCache, for reuse across many encodes in a hot loop. Clears the cache first. Read more
Source§

fn try_encode_with_cache( &self, cache: &mut SizeCache, buf: &mut impl EncodeSink, ) -> Result<(), EncodeError>

Encode with a caller-supplied SizeCache, returning an error instead of panicking if the encoded size exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Clears the cache first. Read more
Source§

fn try_encode_bounded( &self, max_bytes: u32, buf: &mut impl EncodeSink, ) -> Result<u32, EncodeError>

Encode this message into buf only if its encoded size fits within max_bytes, using a single size pass that is then reused for the write. Read more
Source§

fn try_encode_bounded_with_cache( &self, max_bytes: u32, cache: &mut SizeCache, buf: &mut impl EncodeSink, ) -> Result<u32, EncodeError>

Like try_encode_bounded but reuses an existing SizeCache, clearing it first. Read more
Source§

fn encoded_len(&self) -> u32

Compute the encoded byte size of this message. Read more
Source§

fn try_encoded_len(&self) -> Result<u32, EncodeError>

Compute the encoded byte size, returning an error instead of panicking if it exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Read more
Source§

fn encode_length_delimited(&self, buf: &mut impl EncodeSink)

Encode this message as a length-delimited byte sequence. Read more
Source§

fn try_encode_length_delimited( &self, buf: &mut impl EncodeSink, ) -> Result<(), EncodeError>

Encode as a length-delimited byte sequence, returning an error instead of panicking if the encoded size exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>

Encode this message to a new Vec<u8>. Read more
Source§

fn try_encode_to_vec(&self) -> Result<Vec<u8>, EncodeError>

Encode to a new Vec<u8>, returning an error instead of panicking if the encoded size exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Read more
Source§

fn encode_to_bytes(&self) -> Bytes

Encode this message to a new bytes::Bytes. Read more
Source§

fn try_encode_to_bytes(&self) -> Result<Bytes, EncodeError>

Encode to a new bytes::Bytes, returning an error instead of panicking if the encoded size exceeds the 2 GiB protobuf limit (MAX_MESSAGE_BYTES). Read more
Source§

fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>
where Self: Sized,

Decode a message from a buffer.
Source§

fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>
where Self: Sized,

Decode a message from a byte slice. Read more
Source§

fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>
where Self: Sized,

Decode a length-delimited message from a buffer. Read more
Source§

fn merge_to_limit( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, limit: usize, ) -> Result<(), DecodeError>

Merge fields from a buffer until buf.remaining() reaches limit. Read more
Source§

fn merge_group( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, field_number: u32, ) -> Result<(), DecodeError>

Merges a group-encoded message from buf, reading fields until an EndGroup tag with the given field_number is encountered. Read more
Source§

fn merge( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Merge fields from a buffer into this message. Read more
Source§

fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>

Merge fields from a byte slice into this message. Read more
Source§

fn merge_length_delimited( &mut self, buf: &mut impl Buf, ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>

Merge fields from a length-delimited sub-message payload into this message. Read more
Source§

impl MessageName for Api

Source§

const PACKAGE: &'static str = "google.protobuf"

The protobuf package the message is declared in. Read more
Source§

const NAME: &'static str = "Api"

The unqualified message name, with . between nesting levels. Read more
Source§

const FULL_NAME: &'static str = "google.protobuf.Api"

The fully-qualified protobuf type name with no leading dot. Read more
Source§

const TYPE_URL: &'static str = "type.googleapis.com/google.protobuf.Api"

The google.protobuf.Any.type_url form for this message. Read more
Source§

impl PartialEq for Api

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl ReflectElement for Api

Available on crate feature reflect only.
Source§

fn as_value_ref(&self) -> ValueRef<'_>

Borrow this element as a ValueRef.
Source§

impl ReflectMessage for Api

Available on crate feature reflect only.
Source§

fn message_descriptor(&self) -> &MessageDescriptor

The descriptor for this message type.
Source§

fn pool(&self) -> &Arc<DescriptorPool>

The pool the descriptor lives in. Use this to dereference MessageIndex / EnumIndex from FieldKind, or Arc::clone it to construct sibling DynamicMessages while navigating nested fields.
Source§

fn unknown_fields(&self) -> &UnknownFields

The fields preserved from decode that the message’s descriptor does not recognize. Read more
Source§

fn get(&self, field: &FieldDescriptor) -> ValueRef<'_>

Get a field’s value. Read more
Source§

fn has(&self, field: &FieldDescriptor) -> bool

Whether a field is present. Read more
Source§

fn for_each_set(&self, f: &mut dyn FnMut(&FieldDescriptor, ValueRef<'_>))

Visit every set field. Read more
Source§

fn to_dynamic(&self) -> DynamicMessage

Snapshot this message as an owned DynamicMessage. Read more
Source§

fn which_oneof(&self, oneof: &OneofDescriptor) -> Option<&FieldDescriptor>

Which member of oneof is set, if any. Read more
Source§

impl Reflectable for Api

Available on crate feature reflect only.
Source§

fn reflect(&self) -> ReflectCow<'_>

Vtable-mode reflective handle: borrows self directly. No encode/decode round-trip and no allocation — the reflective accessors read this message’s fields in place.

Source§

impl StructuralPartialEq for Api

Source§

impl TextFormat for Api

Source§

fn encode_text(&self, enc: &mut TextEncoder<'_>) -> Result

Write this message’s fields to enc. Read more
Source§

fn merge_text(&mut self, dec: &mut TextDecoder<'_>) -> Result<(), ParseError>

Merge fields from dec into this message. Read more

Auto Trait Implementations§

§

impl Freeze for Api

§

impl RefUnwindSafe for Api

§

impl Send for Api

§

impl Sync for Api

§

impl Unpin for Api

§

impl UnsafeUnpin for Api

§

impl UnwindSafe for Api

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.