Skip to main content

CodeGeneratorRequest

Struct CodeGeneratorRequest 

Source
pub struct CodeGeneratorRequest {
    pub file_to_generate: Vec<String>,
    pub parameter: Option<String>,
    pub proto_file: Vec<FileDescriptorProto>,
    pub source_file_descriptors: Vec<FileDescriptorProto>,
    pub compiler_version: MessageField<Version, Inline<Version>>,
    /* private fields */
}
Expand description

An encoded CodeGeneratorRequest is written to the plugin’s stdin.

Fields§

§file_to_generate: Vec<String>

The .proto files that were explicitly listed on the command-line. The code generator should generate code only for these files. Each file’s descriptor will be included in proto_file, below.

Field 1: file_to_generate

§parameter: Option<String>

The generator parameter passed on the command-line.

Field 2: parameter

§proto_file: Vec<FileDescriptorProto>

FileDescriptorProtos for all files in files_to_generate and everything they import. The files will appear in topological order, so each file appears before any file that imports it.

Note: the files listed in files_to_generate will include runtime-retention options only, but all other files will include source-retention options. The source_file_descriptors field below is available in case you need source-retention options for files_to_generate.

protoc guarantees that all proto_files will be written after the fields above, even though this is not technically guaranteed by the protobuf wire format. This theoretically could allow a plugin to stream in the FileDescriptorProtos and handle them one by one rather than read the entire set into memory at once. However, as of this writing, this is not similarly optimized on protoc’s end – it will store all fields in memory at once before sending them to the plugin.

Type names of fields and extensions in the FileDescriptorProto are always fully qualified.

Field 15: proto_file

§source_file_descriptors: Vec<FileDescriptorProto>

File descriptors with all options, including source-retention options. These descriptors are only provided for the files listed in files_to_generate.

Field 17: source_file_descriptors

§compiler_version: MessageField<Version, Inline<Version>>

The version number of protocol compiler.

Field 3: compiler_version

Implementations§

Source§

impl CodeGeneratorRequest

Source

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

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

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

Source§

impl CodeGeneratorRequest

Source

pub fn with_parameter(self, value: impl Into<String>) -> Self

Sets Self::parameter to Some(value), consuming and returning self.

Trait Implementations§

Source§

impl Clone for CodeGeneratorRequest

Source§

fn clone(&self) -> CodeGeneratorRequest

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 CodeGeneratorRequest

Source§

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

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

impl Default for CodeGeneratorRequest

Source§

fn default() -> CodeGeneratorRequest

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

impl DefaultInstance for CodeGeneratorRequest

Source§

fn default_instance() -> &'static Self

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

impl ExtensionSet for CodeGeneratorRequest

Source§

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

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 Message for CodeGeneratorRequest

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 CodeGeneratorRequest

Source§

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

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

const NAME: &'static str = "CodeGeneratorRequest"

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

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

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

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

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

impl PartialEq for CodeGeneratorRequest

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for CodeGeneratorRequest

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.