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<i32>, pub go_package: Option<String>, pub cc_generic_services: Option<bool>, pub java_generic_services: Option<bool>, pub py_generic_services: Option<bool>, pub php_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 uninterpreted_option: Vec<UninterpretedOption>,
}
Expand description

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.

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

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

§java_generate_equals_and_hash: Option<bool>
👎Deprecated

This option does nothing.

§java_string_check_utf8: Option<bool>

If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. Message reflection will do the same. However, an extension field still accepts non-UTF-8 byte sequences. This option has no effect on when used with the lite runtime.

§optimize_for: Option<i32>§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.
§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.

§java_generic_services: Option<bool>§py_generic_services: Option<bool>§php_generic_services: Option<bool>§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.

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

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

§csharp_namespace: Option<String>

Namespace for generated classes; defaults to the package.

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

§php_class_prefix: Option<String>

Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.

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

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

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

§uninterpreted_option: Vec<UninterpretedOption>

The parser stores options it doesn’t recognize here. See the documentation for the “Options” section above.

Implementations§

source§

impl FileOptions

source

pub fn java_package(&self) -> &str

Returns the value of java_package, or the default value if java_package is unset.

source

pub fn java_outer_classname(&self) -> &str

Returns the value of java_outer_classname, or the default value if java_outer_classname is unset.

source

pub fn optimize_for(&self) -> OptimizeMode

Returns the enum value of optimize_for, or the default if the field is unset or set to an invalid enum value.

source

pub fn set_optimize_for(&mut self, value: OptimizeMode)

Sets optimize_for to the provided enum value.

source

pub fn java_multiple_files(&self) -> bool

Returns the value of java_multiple_files, or the default value if java_multiple_files is unset.

source

pub fn go_package(&self) -> &str

Returns the value of go_package, or the default value if go_package is unset.

source

pub fn cc_generic_services(&self) -> bool

Returns the value of cc_generic_services, or the default value if cc_generic_services is unset.

source

pub fn java_generic_services(&self) -> bool

Returns the value of java_generic_services, or the default value if java_generic_services is unset.

source

pub fn py_generic_services(&self) -> bool

Returns the value of py_generic_services, or the default value if py_generic_services is unset.

source

pub fn java_generate_equals_and_hash(&self) -> bool

Returns the value of java_generate_equals_and_hash, or the default value if java_generate_equals_and_hash is unset.

source

pub fn deprecated(&self) -> bool

Returns the value of deprecated, or the default value if deprecated is unset.

source

pub fn java_string_check_utf8(&self) -> bool

Returns the value of java_string_check_utf8, or the default value if java_string_check_utf8 is unset.

source

pub fn cc_enable_arenas(&self) -> bool

Returns the value of cc_enable_arenas, or the default value if cc_enable_arenas is unset.

source

pub fn objc_class_prefix(&self) -> &str

Returns the value of objc_class_prefix, or the default value if objc_class_prefix is unset.

source

pub fn csharp_namespace(&self) -> &str

Returns the value of csharp_namespace, or the default value if csharp_namespace is unset.

source

pub fn swift_prefix(&self) -> &str

Returns the value of swift_prefix, or the default value if swift_prefix is unset.

source

pub fn php_class_prefix(&self) -> &str

Returns the value of php_class_prefix, or the default value if php_class_prefix is unset.

source

pub fn php_namespace(&self) -> &str

Returns the value of php_namespace, or the default value if php_namespace is unset.

source

pub fn php_generic_services(&self) -> bool

Returns the value of php_generic_services, or the default value if php_generic_services is unset.

source

pub fn php_metadata_namespace(&self) -> &str

Returns the value of php_metadata_namespace, or the default value if php_metadata_namespace is unset.

source

pub fn ruby_package(&self) -> &str

Returns the value of ruby_package, or the default value if ruby_package is unset.

Trait Implementations§

source§

impl Clone for FileOptions

source§

fn clone(&self) -> FileOptions

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FileOptions

source§

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

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

impl Default for FileOptions

source§

fn default() -> Self

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

impl Message for FileOptions

source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
source§

fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message to a buffer. Read more
source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
source§

fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
source§

fn decode<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes an instance of the message from a buffer. Read more
source§

fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes a length-delimited instance of the message from the buffer.
source§

fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
source§

fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
source§

impl PartialEq for FileOptions

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for FileOptions

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

§

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

§

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

§

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.