pub struct FileOptions {Show 21 fields
pub java_package: Option<String>,
pub java_outer_classname: Option<String>,
pub java_multiple_files: Option<bool>,
pub java_generate_equals_and_hash: Option<bool>,
pub java_string_check_utf8: Option<bool>,
pub optimize_for: Option<OptimizeMode>,
pub go_package: Option<String>,
pub cc_generic_services: Option<bool>,
pub java_generic_services: Option<bool>,
pub py_generic_services: Option<bool>,
pub deprecated: Option<bool>,
pub cc_enable_arenas: Option<bool>,
pub objc_class_prefix: Option<String>,
pub csharp_namespace: Option<String>,
pub swift_prefix: Option<String>,
pub php_class_prefix: Option<String>,
pub php_namespace: Option<String>,
pub php_metadata_namespace: Option<String>,
pub ruby_package: Option<String>,
pub features: MessageField<FeatureSet>,
pub uninterpreted_option: Vec<UninterpretedOption>,
/* private fields */
}Expand description
=================================================================== Options
Each of the definitions above may have “options” attached. These are just annotations which may cause code to be generated slightly differently or may contain hints for code that manipulates protocol messages.
Clients may define custom options as extensions of the *Options messages. These extensions may not yet be known at parsing time, so the parser cannot store the values in them. Instead it stores them in a field in the *Options message called uninterpreted_option. This field must have the same name across all *Options messages. We then use this field to populate the extensions when we build a descriptor, at which point all protos have been parsed and so all extensions are known.
Extension numbers for custom options may be chosen as follows:
- For options which will only be used within a single application or organization, or for experimental options, use field numbers 50000 through 99999. It is up to you to ensure that you do not use the same number for multiple options.
- For options which will be published and used publicly by multiple independent entities, e-mail protobuf-global-extension-registry@google.com to reserve extension numbers. Simply provide your project name (e.g. Objective-C plugin) and your project website (if available) – there’s no need to explain how you intend to use them. Usually you only need one extension number. You can declare multiple options with only one extension number by putting them in a sub-message. See the Custom Options section of the docs for examples: https://developers.google.com/protocol-buffers/docs/proto#options If this turns out to be popular, a web service will be set up to automatically assign option numbers.
Fields§
§java_package: Option<String>Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.
Field 1: java_package
java_outer_classname: Option<String>Controls the name of the wrapper Java class generated for the .proto file. That class will always contain the .proto file’s getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.
Field 8: java_outer_classname
java_multiple_files: Option<bool>If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file’s getDescriptor() method as well as any top-level extensions defined in the file.
Field 10: java_multiple_files
java_generate_equals_and_hash: Option<bool>This option does nothing.
Field 20: java_generate_equals_and_hash
java_string_check_utf8: Option<bool>A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field.
TODO: clarify exactly what kinds of field types this option applies to, and update these docs accordingly.
Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks.
Field 27: java_string_check_utf8
optimize_for: Option<OptimizeMode>Field 9: optimize_for
go_package: Option<String>Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following:
- The basename of the package import path, if provided.
- Otherwise, the package statement in the .proto file, if present.
- Otherwise, the basename of the .proto file, without extension.
Field 11: go_package
cc_generic_services: Option<bool>Should generic services be generated in each language? “Generic” services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins). Generic services were the only kind of service generation supported by early versions of google.protobuf.
Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true.
Field 16: cc_generic_services
java_generic_services: Option<bool>Field 17: java_generic_services
py_generic_services: Option<bool>Field 18: py_generic_services
deprecated: Option<bool>Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files.
Field 23: deprecated
cc_enable_arenas: Option<bool>Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++.
Field 31: cc_enable_arenas
objc_class_prefix: Option<String>Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.
Field 36: objc_class_prefix
csharp_namespace: Option<String>Namespace for generated classes; defaults to the package.
Field 37: csharp_namespace
swift_prefix: Option<String>By default Swift generators will take the proto package and CamelCase it replacing ‘.’ with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.
Field 39: swift_prefix
php_class_prefix: Option<String>Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.
Field 40: php_class_prefix
php_namespace: Option<String>Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.
Field 41: php_namespace
php_metadata_namespace: Option<String>Use this option to change the namespace of php generated metadata classes. Default is empty. When this option is empty, the proto file name will be used for determining the namespace.
Field 44: php_metadata_namespace
ruby_package: Option<String>Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.
Field 45: ruby_package
features: MessageField<FeatureSet>Any features defined in the specific edition. WARNING: This field should only be used by protobuf plugins or special cases like the proto compiler. Other uses are discouraged and developers should rely on the protoreflect APIs for their client language.
Field 50: features
uninterpreted_option: Vec<UninterpretedOption>The parser stores options it doesn’t recognize here. See the documentation for the “Options” section above.
Field 999: uninterpreted_option
Implementations§
Source§impl FileOptions
impl FileOptions
Source§impl FileOptions
impl FileOptions
Sourcepub fn with_java_package(self, value: impl Into<String>) -> Self
pub fn with_java_package(self, value: impl Into<String>) -> Self
Sets Self::java_package to Some(value), consuming and returning self.
Sourcepub fn with_java_outer_classname(self, value: impl Into<String>) -> Self
pub fn with_java_outer_classname(self, value: impl Into<String>) -> Self
Sets Self::java_outer_classname to Some(value), consuming and returning self.
Sourcepub fn with_java_multiple_files(self, value: bool) -> Self
pub fn with_java_multiple_files(self, value: bool) -> Self
Sets Self::java_multiple_files to Some(value), consuming and returning self.
Sourcepub fn with_java_generate_equals_and_hash(self, value: bool) -> Self
pub fn with_java_generate_equals_and_hash(self, value: bool) -> Self
Sets Self::java_generate_equals_and_hash to Some(value), consuming and returning self.
Sourcepub fn with_java_string_check_utf8(self, value: bool) -> Self
pub fn with_java_string_check_utf8(self, value: bool) -> Self
Sets Self::java_string_check_utf8 to Some(value), consuming and returning self.
Sourcepub fn with_optimize_for(self, value: impl Into<OptimizeMode>) -> Self
pub fn with_optimize_for(self, value: impl Into<OptimizeMode>) -> Self
Sets Self::optimize_for to Some(value), consuming and returning self.
Sourcepub fn with_go_package(self, value: impl Into<String>) -> Self
pub fn with_go_package(self, value: impl Into<String>) -> Self
Sets Self::go_package to Some(value), consuming and returning self.
Sourcepub fn with_cc_generic_services(self, value: bool) -> Self
pub fn with_cc_generic_services(self, value: bool) -> Self
Sets Self::cc_generic_services to Some(value), consuming and returning self.
Sourcepub fn with_java_generic_services(self, value: bool) -> Self
pub fn with_java_generic_services(self, value: bool) -> Self
Sets Self::java_generic_services to Some(value), consuming and returning self.
Sourcepub fn with_py_generic_services(self, value: bool) -> Self
pub fn with_py_generic_services(self, value: bool) -> Self
Sets Self::py_generic_services to Some(value), consuming and returning self.
Sourcepub fn with_deprecated(self, value: bool) -> Self
pub fn with_deprecated(self, value: bool) -> Self
Sets Self::deprecated to Some(value), consuming and returning self.
Sourcepub fn with_cc_enable_arenas(self, value: bool) -> Self
pub fn with_cc_enable_arenas(self, value: bool) -> Self
Sets Self::cc_enable_arenas to Some(value), consuming and returning self.
Sourcepub fn with_objc_class_prefix(self, value: impl Into<String>) -> Self
pub fn with_objc_class_prefix(self, value: impl Into<String>) -> Self
Sets Self::objc_class_prefix to Some(value), consuming and returning self.
Sourcepub fn with_csharp_namespace(self, value: impl Into<String>) -> Self
pub fn with_csharp_namespace(self, value: impl Into<String>) -> Self
Sets Self::csharp_namespace to Some(value), consuming and returning self.
Sourcepub fn with_swift_prefix(self, value: impl Into<String>) -> Self
pub fn with_swift_prefix(self, value: impl Into<String>) -> Self
Sets Self::swift_prefix to Some(value), consuming and returning self.
Sourcepub fn with_php_class_prefix(self, value: impl Into<String>) -> Self
pub fn with_php_class_prefix(self, value: impl Into<String>) -> Self
Sets Self::php_class_prefix to Some(value), consuming and returning self.
Sourcepub fn with_php_namespace(self, value: impl Into<String>) -> Self
pub fn with_php_namespace(self, value: impl Into<String>) -> Self
Sets Self::php_namespace to Some(value), consuming and returning self.
Sourcepub fn with_php_metadata_namespace(self, value: impl Into<String>) -> Self
pub fn with_php_metadata_namespace(self, value: impl Into<String>) -> Self
Sets Self::php_metadata_namespace to Some(value), consuming and returning self.
Sourcepub fn with_ruby_package(self, value: impl Into<String>) -> Self
pub fn with_ruby_package(self, value: impl Into<String>) -> Self
Sets Self::ruby_package to Some(value), consuming and returning self.
Trait Implementations§
Source§impl Clone for FileOptions
impl Clone for FileOptions
Source§fn clone(&self) -> FileOptions
fn clone(&self) -> FileOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FileOptions
impl Debug for FileOptions
Source§impl Default for FileOptions
impl Default for FileOptions
Source§fn default() -> FileOptions
fn default() -> FileOptions
Source§impl DefaultInstance for FileOptions
impl DefaultInstance for FileOptions
Source§fn default_instance() -> &'static Self
fn default_instance() -> &'static Self
Source§impl ExtensionSet for FileOptions
impl ExtensionSet for FileOptions
Source§const PROTO_FQN: &'static str = "google.protobuf.FileOptions"
const PROTO_FQN: &'static str = "google.protobuf.FileOptions"
"google.protobuf.FieldOptions". Read moreSource§fn unknown_fields(&self) -> &UnknownFields
fn unknown_fields(&self) -> &UnknownFields
Source§fn unknown_fields_mut(&mut self) -> &mut UnknownFields
fn unknown_fields_mut(&mut self) -> &mut UnknownFields
Source§fn extension<C>(&self, ext: &Extension<C>) -> <C as ExtensionCodec>::Outputwhere
C: ExtensionCodec,
fn extension<C>(&self, ext: &Extension<C>) -> <C as ExtensionCodec>::Outputwhere
C: ExtensionCodec,
Source§fn set_extension<C>(
&mut self,
ext: &Extension<C>,
value: <C as ExtensionCodec>::Value,
)where
C: ExtensionCodec,
fn set_extension<C>(
&mut self,
ext: &Extension<C>,
value: <C as ExtensionCodec>::Value,
)where
C: ExtensionCodec,
Source§fn has_extension<C>(&self, ext: &Extension<C>) -> boolwhere
C: ExtensionCodec,
fn has_extension<C>(&self, ext: &Extension<C>) -> boolwhere
C: ExtensionCodec,
true if any record at the extension’s field number is present. Read moreSource§fn clear_extension<C>(&mut self, ext: &Extension<C>)where
C: ExtensionCodec,
fn clear_extension<C>(&mut self, ext: &Extension<C>)where
C: ExtensionCodec,
Source§fn extension_or_default<C>(
&self,
ext: &Extension<C>,
) -> <C as ExtensionCodec>::Valuewhere
C: ExtensionCodec<Output = Option<<C as ExtensionCodec>::Value>>,
<C as ExtensionCodec>::Value: Default,
fn extension_or_default<C>(
&self,
ext: &Extension<C>,
) -> <C as ExtensionCodec>::Valuewhere
C: ExtensionCodec<Output = Option<<C as ExtensionCodec>::Value>>,
<C as ExtensionCodec>::Value: Default,
[default = ...]
value if absent, or the type’s Default if no proto default was declared. Read moreSource§impl Message for FileOptions
impl Message for FileOptions
Source§fn compute_size(&self, __cache: &mut SizeCache) -> u32
fn compute_size(&self, __cache: &mut SizeCache) -> u32
Returns the total encoded size in bytes.
The result is a u32; the protobuf specification requires all
messages to fit within 2 GiB (2,147,483,647 bytes), so a
compliant message will never overflow this type.
Source§fn write_to(&self, __cache: &mut SizeCache, buf: &mut impl BufMut)
fn write_to(&self, __cache: &mut SizeCache, buf: &mut impl BufMut)
cache (populated by a prior
compute_size call on the same cache). Read moreSource§fn merge_field(
&mut self,
tag: Tag,
buf: &mut impl Buf,
depth: u32,
) -> Result<(), DecodeError>
fn merge_field( &mut self, tag: Tag, buf: &mut impl Buf, depth: u32, ) -> Result<(), DecodeError>
buf. Read moreSource§fn encode(&self, buf: &mut impl BufMut)
fn encode(&self, buf: &mut impl BufMut)
Source§fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl BufMut)
fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl BufMut)
SizeCache, for
reuse across many encodes in a hot loop. Clears the cache first.Source§fn encoded_len(&self) -> u32
fn encoded_len(&self) -> u32
Source§fn encode_length_delimited(&self, buf: &mut impl BufMut)
fn encode_length_delimited(&self, buf: &mut impl BufMut)
Source§fn encode_to_bytes(&self) -> Bytes
fn encode_to_bytes(&self) -> Bytes
bytes::Bytes. Read moreSource§fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>where
Self: Sized,
fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn merge_to_limit(
&mut self,
buf: &mut impl Buf,
depth: u32,
limit: usize,
) -> Result<(), DecodeError>
fn merge_to_limit( &mut self, buf: &mut impl Buf, depth: u32, limit: usize, ) -> Result<(), DecodeError>
Source§fn merge_group(
&mut self,
buf: &mut impl Buf,
depth: u32,
field_number: u32,
) -> Result<(), DecodeError>
fn merge_group( &mut self, buf: &mut impl Buf, depth: u32, field_number: u32, ) -> Result<(), DecodeError>
buf, reading fields until an
EndGroup tag with the given field_number is encountered. Read moreSource§fn merge(&mut self, buf: &mut impl Buf, depth: u32) -> Result<(), DecodeError>
fn merge(&mut self, buf: &mut impl Buf, depth: u32) -> Result<(), DecodeError>
Source§fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>
fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>
Source§fn merge_length_delimited(
&mut self,
buf: &mut impl Buf,
depth: u32,
) -> Result<(), DecodeError>
fn merge_length_delimited( &mut self, buf: &mut impl Buf, depth: u32, ) -> Result<(), DecodeError>
Source§impl MessageName for FileOptions
impl MessageName for FileOptions
Source§const PACKAGE: &'static str = "google.protobuf"
const PACKAGE: &'static str = "google.protobuf"
Source§const NAME: &'static str = "FileOptions"
const NAME: &'static str = "FileOptions"
. between nesting levels. Read moreSource§impl PartialEq for FileOptions
impl PartialEq for FileOptions
Source§fn eq(&self, other: &FileOptions) -> bool
fn eq(&self, other: &FileOptions) -> bool
self and other values to be equal, and is used by ==.