Classes
CustomOptions
Container for a set of custom options specified within a message, field etc.
DescriptorBase
Base class for nearly all descriptors, providing common functionality.
DescriptorDeclaration
Provides additional information about the declaration of a descriptor, such as source location and comments.
DescriptorProto
Describes a message type.
DescriptorProto.Types
Container for nested types declared in the DescriptorProto message type.
DescriptorProto.Types.ExtensionRange
DescriptorProto.Types.ReservedRange
Range of reserved tag numbers. Reserved tag numbers may not be used by fields or extension ranges in the same message. Reserved ranges may not overlap.
DescriptorReflection
Holder for reflection information generated from google/protobuf/descriptor.proto
DescriptorValidationException
Thrown when building descriptors fails because the source DescriptorProtos are not valid.
EnumDescriptor
Descriptor for an enum type in a .proto file.
EnumDescriptorProto
Describes an enum type.
EnumDescriptorProto.Types
Container for nested types declared in the EnumDescriptorProto message type.
EnumDescriptorProto.Types.EnumReservedRange
Range of reserved numeric values. Reserved values may not be used by entries in the same enum. Reserved ranges may not overlap.
Note that this is distinct from DescriptorProto.ReservedRange in that it is inclusive such that it can appropriately represent the entire int32 domain.
EnumOptions
EnumValueDescriptor
Descriptor for a single enum value within an enum in a .proto file.
EnumValueDescriptorProto
Describes a value within an enum.
EnumValueOptions
ExtensionCollection
A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
ExtensionRangeOptions
ExtensionRangeOptions.Types
Container for nested types declared in the ExtensionRangeOptions message type.
ExtensionRangeOptions.Types.Declaration
FeatureSet
TODO Enums in C++ gencode (and potentially other languages) are not well scoped. This means that each of the feature enums below can clash with each other. The short names we've chosen maximize call-site readability, but leave us very open to this scenario. A future feature will be designed and implemented to handle this, hopefully before we ever hit a conflict here.
FeatureSet.Types
Container for nested types declared in the FeatureSet message type.
FeatureSetDefaults
A compiled specification for the defaults of a set of features. These messages are generated from FeatureSet extensions and can be used to seed feature resolution. The resolution with this object becomes a simple search for the closest matching edition, followed by proto merges.
FeatureSetDefaults.Types
Container for nested types declared in the FeatureSetDefaults message type.
FeatureSetDefaults.Types.FeatureSetEditionDefault
A map from every known edition with a unique set of defaults to its defaults. Not all editions may be contained here. For a given edition, the defaults at the closest matching edition ordered at or before it should be used. This field must be in strict ascending order by edition.
FieldDescriptor
Descriptor for a field or extension within a message in a .proto file.
FieldDescriptorProto
Describes a field within a message.
FieldDescriptorProto.Types
Container for nested types declared in the FieldDescriptorProto message type.
FieldOptions
FieldOptions.Types
Container for nested types declared in the FieldOptions message type.
FieldOptions.Types.EditionDefault
FieldOptions.Types.FeatureSupport
Information about the support window of a feature.
FileDescriptor
Describes a .proto file, including everything defined within. IDescriptor is implemented such that the File property returns this descriptor, and the FullName is the same as the Name.
FileDescriptorProto
Describes a complete .proto file.
FileDescriptorSet
The protocol compiler can output a FileDescriptorSet containing the .proto files it parses.
FileOptions
FileOptions.Types
Container for nested types declared in the FileOptions message type.
GeneratedClrTypeInfo
Extra information provided by generated code when initializing a message or file descriptor. These are constructed as required, and are not long-lived. Hand-written code should never need to use this type.
GeneratedCodeInfo
Describes the relationship between generated code and its original source file. A GeneratedCodeInfo message is associated with only one generated source file, but may contain references to different source .proto files.
GeneratedCodeInfo.Types
Container for nested types declared in the GeneratedCodeInfo message type.
GeneratedCodeInfo.Types.Annotation
GeneratedCodeInfo.Types.Annotation.Types
Container for nested types declared in the Annotation message type.
MessageDescriptor
Describes a message type.
MessageDescriptor.FieldCollection
A collection to simplify retrieving the field accessor for a particular field.
MessageOptions
MethodDescriptor
Describes a single method in a service.
MethodDescriptorProto
Describes a method of a service.
MethodOptions
MethodOptions.Types
Container for nested types declared in the MethodOptions message type.
OneofAccessor
Reflection access for a oneof, allowing clear and "get case" actions.
OneofDescriptor
Describes a "oneof" field collection in a message type: a set of fields of which at most one can be set in any particular message.
OneofDescriptorProto
Describes a oneof.
OneofOptions
OriginalNameAttribute
Specifies the original name (in the .proto file) of a named element, such as an enum value.
ServiceDescriptor
Describes a service type.
ServiceDescriptorProto
Describes a service.
ServiceOptions
SourceCodeInfo
Encapsulates information about the original source file from which a FileDescriptorProto was generated.
SourceCodeInfo.Types
Container for nested types declared in the SourceCodeInfo message type.
SourceCodeInfo.Types.Location
TypeRegistry
An immutable registry of types which can be looked up by their full name.
UninterpretedOption
A message representing a option the parser does not recognize. This only appears in options protos created by the compiler::Parser class. DescriptorPool resolves these when building Descriptor objects. Therefore, options protos in descriptor objects (e.g. returned by Descriptor::options(), or produced by Descriptor::CopyTo()) will never have UninterpretedOptions in them.
UninterpretedOption.Types
Container for nested types declared in the UninterpretedOption message type.
UninterpretedOption.Types.NamePart
The name of the uninterpreted option. Each string represents a segment in a dot-separated name. is_extension is true iff a segment represents an extension (denoted with parentheses in options specs in .proto files). E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents "foo.(bar.baz).moo".
Interfaces
IDescriptor
Interface implemented by all descriptor types.
IFieldAccessor
Allows fields to be reflectively accessed.
Enums
Edition
The full set of known editions.
ExtensionRangeOptions.Types.VerificationState
The verification state of the extension range.
FeatureSet.Types.EnumType
FeatureSet.Types.FieldPresence
FeatureSet.Types.JsonFormat
FeatureSet.Types.MessageEncoding
FeatureSet.Types.RepeatedFieldEncoding
FeatureSet.Types.Utf8Validation
FieldDescriptorProto.Types.Label
FieldDescriptorProto.Types.Type
FieldOptions.Types.CType
FieldOptions.Types.JSType
FieldOptions.Types.OptionRetention
If set to RETENTION_SOURCE, the option will be omitted from the binary. Note: as of January 2023, support for this is in progress and does not yet have an effect (b/264593489).
FieldOptions.Types.OptionTargetType
This indicates the types of entities that the field may apply to when used as an option. If it is unset, then the field may be freely used as an option on any kind of entity. Note: as of January 2023, support for this is in progress and does not yet have an effect (b/264593489).
FieldType
Enumeration of all the possible field types.
FileOptions.Types.OptimizeMode
Generated classes can be optimized for speed or code size.
GeneratedCodeInfo.Types.Annotation.Types.Semantic
Represents the identified object's effect on the element in the original .proto file.
MethodOptions.Types.IdempotencyLevel
Is this method side-effect-free (or safe in HTTP parlance), or idempotent, or neither? HTTP based RPC implementation may choose GET verb for safe methods, and PUT verb for idempotent methods instead of the default POST.
Syntax
The syntax of a .proto file