#include foo.upb_minitable.h instead of having foo.upb.h forward-declare MiniTables.

PiperOrigin-RevId: 565767975
pull/14100/head
Joshua Haberman 1 year ago committed by Copybara-Service
parent 8b08c70b23
commit 0fbe525095
  1. 6
      upb/bazel/upb_proto_library_internal/aspect.bzl
  2. 1351
      upb/cmake/google/protobuf/descriptor.upb_minitable.c
  3. 78
      upb/cmake/google/protobuf/descriptor.upb_minitable.h
  4. 102
      upb/upb/reflection/stage0/google/protobuf/descriptor.upb.h
  5. 111
      upb/upbc/protoc-gen-upb.cc
  6. 20
      upb/upbc/stage0/google/protobuf/compiler/plugin.upb.h

@ -152,7 +152,13 @@ def _get_dep_cc_infos(target, ctx, generator, cc_provider, dep_cc_provider):
dep_ccinfos = [dep[CcInfo] for dep in aspect_deps]
dep_ccinfos += [dep[cc_provider].cc_info for dep in rule_deps]
if dep_cc_provider:
# This gives access to our direct sibling. eg. foo.upb.h can #include "foo.upb_minitable.h"
dep_ccinfos.append(target[dep_cc_provider].cc_info)
# This gives access to imports. eg. foo.upb.h can #include "import1.upb_minitable.h"
# But not transitive imports, eg. foo.upb.h cannot #include "transitive_import1.upb_minitable.h"
dep_ccinfos += [dep[dep_cc_provider].cc_info for dep in rule_deps]
return dep_ccinfos
def _compile_upb_protos(ctx, files, generator, dep_ccinfos, cc_provider):

File diff suppressed because it is too large Load Diff

@ -1,78 +0,0 @@
/* This file was generated by upbc (the upb compiler) from the input
* file:
*
* google/protobuf/descriptor.proto
*
* Do not edit -- your changes will be discarded when the file is
* regenerated. */
#ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_MINITABLE_H_
#define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_MINITABLE_H_
#include "upb/upb/generated_code_support.h"
// Must be last.
#include "upb/upb/port/def.inc"
#ifdef __cplusplus
extern "C" {
#endif
extern const upb_MiniTable google_protobuf_FileDescriptorSet_msg_init;
extern const upb_MiniTable google_protobuf_FileDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_DescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_DescriptorProto_ExtensionRange_msg_init;
extern const upb_MiniTable google_protobuf_DescriptorProto_ReservedRange_msg_init;
extern const upb_MiniTable google_protobuf_ExtensionRangeOptions_msg_init;
extern const upb_MiniTable google_protobuf_ExtensionRangeOptions_Declaration_msg_init;
extern const upb_MiniTable google_protobuf_FieldDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_OneofDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_EnumDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_EnumDescriptorProto_EnumReservedRange_msg_init;
extern const upb_MiniTable google_protobuf_EnumValueDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_ServiceDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_MethodDescriptorProto_msg_init;
extern const upb_MiniTable google_protobuf_FileOptions_msg_init;
extern const upb_MiniTable google_protobuf_MessageOptions_msg_init;
extern const upb_MiniTable google_protobuf_FieldOptions_msg_init;
extern const upb_MiniTable google_protobuf_FieldOptions_EditionDefault_msg_init;
extern const upb_MiniTable google_protobuf_OneofOptions_msg_init;
extern const upb_MiniTable google_protobuf_EnumOptions_msg_init;
extern const upb_MiniTable google_protobuf_EnumValueOptions_msg_init;
extern const upb_MiniTable google_protobuf_ServiceOptions_msg_init;
extern const upb_MiniTable google_protobuf_MethodOptions_msg_init;
extern const upb_MiniTable google_protobuf_UninterpretedOption_msg_init;
extern const upb_MiniTable google_protobuf_UninterpretedOption_NamePart_msg_init;
extern const upb_MiniTable google_protobuf_FeatureSet_msg_init;
extern const upb_MiniTable google_protobuf_FeatureSetDefaults_msg_init;
extern const upb_MiniTable google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_msg_init;
extern const upb_MiniTable google_protobuf_SourceCodeInfo_msg_init;
extern const upb_MiniTable google_protobuf_SourceCodeInfo_Location_msg_init;
extern const upb_MiniTable google_protobuf_GeneratedCodeInfo_msg_init;
extern const upb_MiniTable google_protobuf_GeneratedCodeInfo_Annotation_msg_init;
extern const upb_MiniTableEnum google_protobuf_Edition_enum_init;
extern const upb_MiniTableEnum google_protobuf_ExtensionRangeOptions_VerificationState_enum_init;
extern const upb_MiniTableEnum google_protobuf_FeatureSet_EnumType_enum_init;
extern const upb_MiniTableEnum google_protobuf_FeatureSet_FieldPresence_enum_init;
extern const upb_MiniTableEnum google_protobuf_FeatureSet_JsonFormat_enum_init;
extern const upb_MiniTableEnum google_protobuf_FeatureSet_MessageEncoding_enum_init;
extern const upb_MiniTableEnum google_protobuf_FeatureSet_RepeatedFieldEncoding_enum_init;
extern const upb_MiniTableEnum google_protobuf_FieldDescriptorProto_Label_enum_init;
extern const upb_MiniTableEnum google_protobuf_FieldDescriptorProto_Type_enum_init;
extern const upb_MiniTableEnum google_protobuf_FieldOptions_CType_enum_init;
extern const upb_MiniTableEnum google_protobuf_FieldOptions_JSType_enum_init;
extern const upb_MiniTableEnum google_protobuf_FieldOptions_OptionRetention_enum_init;
extern const upb_MiniTableEnum google_protobuf_FieldOptions_OptionTargetType_enum_init;
extern const upb_MiniTableEnum google_protobuf_FileOptions_OptimizeMode_enum_init;
extern const upb_MiniTableEnum google_protobuf_GeneratedCodeInfo_Annotation_Semantic_enum_init;
extern const upb_MiniTableEnum google_protobuf_MethodOptions_IdempotencyLevel_enum_init;
extern const upb_MiniTableFile google_protobuf_descriptor_proto_upb_file_layout;
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/upb/port/undef.inc"
#endif /* GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_MINITABLE_H_ */

@ -10,45 +10,14 @@
#define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
#include "upb/upb/generated_code_support.h"
// Must be last.
// Must be last.
#include "upb/upb/port/def.inc"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct google_protobuf_FileDescriptorSet google_protobuf_FileDescriptorSet;
typedef struct google_protobuf_FileDescriptorProto google_protobuf_FileDescriptorProto;
typedef struct google_protobuf_DescriptorProto google_protobuf_DescriptorProto;
typedef struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_DescriptorProto_ExtensionRange;
typedef struct google_protobuf_DescriptorProto_ReservedRange google_protobuf_DescriptorProto_ReservedRange;
typedef struct google_protobuf_ExtensionRangeOptions google_protobuf_ExtensionRangeOptions;
typedef struct google_protobuf_ExtensionRangeOptions_Declaration google_protobuf_ExtensionRangeOptions_Declaration;
typedef struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto;
typedef struct google_protobuf_OneofDescriptorProto google_protobuf_OneofDescriptorProto;
typedef struct google_protobuf_EnumDescriptorProto google_protobuf_EnumDescriptorProto;
typedef struct google_protobuf_EnumDescriptorProto_EnumReservedRange google_protobuf_EnumDescriptorProto_EnumReservedRange;
typedef struct google_protobuf_EnumValueDescriptorProto google_protobuf_EnumValueDescriptorProto;
typedef struct google_protobuf_ServiceDescriptorProto google_protobuf_ServiceDescriptorProto;
typedef struct google_protobuf_MethodDescriptorProto google_protobuf_MethodDescriptorProto;
typedef struct google_protobuf_FileOptions google_protobuf_FileOptions;
typedef struct google_protobuf_MessageOptions google_protobuf_MessageOptions;
typedef struct google_protobuf_FieldOptions google_protobuf_FieldOptions;
typedef struct google_protobuf_FieldOptions_EditionDefault google_protobuf_FieldOptions_EditionDefault;
typedef struct google_protobuf_OneofOptions google_protobuf_OneofOptions;
typedef struct google_protobuf_EnumOptions google_protobuf_EnumOptions;
typedef struct google_protobuf_EnumValueOptions google_protobuf_EnumValueOptions;
typedef struct google_protobuf_ServiceOptions google_protobuf_ServiceOptions;
typedef struct google_protobuf_MethodOptions google_protobuf_MethodOptions;
typedef struct google_protobuf_UninterpretedOption google_protobuf_UninterpretedOption;
typedef struct google_protobuf_UninterpretedOption_NamePart google_protobuf_UninterpretedOption_NamePart;
typedef struct google_protobuf_FeatureSet google_protobuf_FeatureSet;
typedef struct google_protobuf_FeatureSetDefaults google_protobuf_FeatureSetDefaults;
typedef struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault;
typedef struct google_protobuf_SourceCodeInfo google_protobuf_SourceCodeInfo;
typedef struct google_protobuf_SourceCodeInfo_Location google_protobuf_SourceCodeInfo_Location;
typedef struct google_protobuf_GeneratedCodeInfo google_protobuf_GeneratedCodeInfo;
typedef struct google_protobuf_GeneratedCodeInfo_Annotation google_protobuf_GeneratedCodeInfo_Annotation;
extern const upb_MiniTable* google_protobuf_FileDescriptorSet_msg_init();
extern const upb_MiniTable* google_protobuf_FileDescriptorProto_msg_init();
extern const upb_MiniTable* google_protobuf_DescriptorProto_msg_init();
@ -81,6 +50,55 @@ extern const upb_MiniTable* google_protobuf_SourceCodeInfo_msg_init();
extern const upb_MiniTable* google_protobuf_SourceCodeInfo_Location_msg_init();
extern const upb_MiniTable* google_protobuf_GeneratedCodeInfo_msg_init();
extern const upb_MiniTable* google_protobuf_GeneratedCodeInfo_Annotation_msg_init();
extern const upb_MiniTableEnum* google_protobuf_Edition_enum_init();
extern const upb_MiniTableEnum* google_protobuf_ExtensionRangeOptions_VerificationState_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_EnumType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_FieldPresence_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_JsonFormat_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_MessageEncoding_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_RepeatedFieldEncoding_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldDescriptorProto_Label_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldDescriptorProto_Type_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_CType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_JSType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_OptionRetention_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_OptionTargetType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FileOptions_OptimizeMode_enum_init();
extern const upb_MiniTableEnum* google_protobuf_GeneratedCodeInfo_Annotation_Semantic_enum_init();
extern const upb_MiniTableEnum* google_protobuf_MethodOptions_IdempotencyLevel_enum_init();
typedef struct google_protobuf_FileDescriptorSet google_protobuf_FileDescriptorSet;
typedef struct google_protobuf_FileDescriptorProto google_protobuf_FileDescriptorProto;
typedef struct google_protobuf_DescriptorProto google_protobuf_DescriptorProto;
typedef struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_DescriptorProto_ExtensionRange;
typedef struct google_protobuf_DescriptorProto_ReservedRange google_protobuf_DescriptorProto_ReservedRange;
typedef struct google_protobuf_ExtensionRangeOptions google_protobuf_ExtensionRangeOptions;
typedef struct google_protobuf_ExtensionRangeOptions_Declaration google_protobuf_ExtensionRangeOptions_Declaration;
typedef struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto;
typedef struct google_protobuf_OneofDescriptorProto google_protobuf_OneofDescriptorProto;
typedef struct google_protobuf_EnumDescriptorProto google_protobuf_EnumDescriptorProto;
typedef struct google_protobuf_EnumDescriptorProto_EnumReservedRange google_protobuf_EnumDescriptorProto_EnumReservedRange;
typedef struct google_protobuf_EnumValueDescriptorProto google_protobuf_EnumValueDescriptorProto;
typedef struct google_protobuf_ServiceDescriptorProto google_protobuf_ServiceDescriptorProto;
typedef struct google_protobuf_MethodDescriptorProto google_protobuf_MethodDescriptorProto;
typedef struct google_protobuf_FileOptions google_protobuf_FileOptions;
typedef struct google_protobuf_MessageOptions google_protobuf_MessageOptions;
typedef struct google_protobuf_FieldOptions google_protobuf_FieldOptions;
typedef struct google_protobuf_FieldOptions_EditionDefault google_protobuf_FieldOptions_EditionDefault;
typedef struct google_protobuf_OneofOptions google_protobuf_OneofOptions;
typedef struct google_protobuf_EnumOptions google_protobuf_EnumOptions;
typedef struct google_protobuf_EnumValueOptions google_protobuf_EnumValueOptions;
typedef struct google_protobuf_ServiceOptions google_protobuf_ServiceOptions;
typedef struct google_protobuf_MethodOptions google_protobuf_MethodOptions;
typedef struct google_protobuf_UninterpretedOption google_protobuf_UninterpretedOption;
typedef struct google_protobuf_UninterpretedOption_NamePart google_protobuf_UninterpretedOption_NamePart;
typedef struct google_protobuf_FeatureSet google_protobuf_FeatureSet;
typedef struct google_protobuf_FeatureSetDefaults google_protobuf_FeatureSetDefaults;
typedef struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault;
typedef struct google_protobuf_SourceCodeInfo google_protobuf_SourceCodeInfo;
typedef struct google_protobuf_SourceCodeInfo_Location google_protobuf_SourceCodeInfo_Location;
typedef struct google_protobuf_GeneratedCodeInfo google_protobuf_GeneratedCodeInfo;
typedef struct google_protobuf_GeneratedCodeInfo_Annotation google_protobuf_GeneratedCodeInfo_Annotation;
typedef enum {
google_protobuf_EDITION_UNKNOWN = 0,
@ -205,22 +223,6 @@ typedef enum {
} google_protobuf_MethodOptions_IdempotencyLevel;
extern const upb_MiniTableEnum* google_protobuf_Edition_enum_init();
extern const upb_MiniTableEnum* google_protobuf_ExtensionRangeOptions_VerificationState_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_EnumType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_FieldPresence_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_JsonFormat_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_MessageEncoding_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FeatureSet_RepeatedFieldEncoding_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldDescriptorProto_Label_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldDescriptorProto_Type_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_CType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_JSType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_OptionRetention_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FieldOptions_OptionTargetType_enum_init();
extern const upb_MiniTableEnum* google_protobuf_FileOptions_OptimizeMode_enum_init();
extern const upb_MiniTableEnum* google_protobuf_GeneratedCodeInfo_Annotation_Semantic_enum_init();
extern const upb_MiniTableEnum* google_protobuf_MethodOptions_IdempotencyLevel_enum_init();
/* google.protobuf.FileDescriptorSet */
@ -6498,8 +6500,6 @@ UPB_INLINE void google_protobuf_GeneratedCodeInfo_Annotation_set_semantic(google
_upb_Message_SetNonExtensionField(msg, &field, &value);
}
extern const upb_MiniTableFile google_protobuf_descriptor_proto_upb_file_layout;
/* Max size 32 is google.protobuf.FileOptions */
/* Max size 64 is google.protobuf.FileOptions */
#define _UPB_MAXOPT_SIZE UPB_SIZE(112, 200)

@ -825,13 +825,48 @@ void ForwardDeclareMiniTableInit(upb::MessageDefPtr message,
}
}
std::vector<upb::MessageDefPtr> SortedForwardMessages(
const std::vector<upb::MessageDefPtr>& this_file_messages,
const std::vector<upb::FieldDefPtr>& this_file_exts) {
std::map<std::string, upb::MessageDefPtr> forward_messages;
for (auto message : this_file_messages) {
for (int i = 0; i < message.field_count(); i++) {
upb::FieldDefPtr field = message.field(i);
if (field.ctype() == kUpb_CType_Message &&
field.file() != field.message_type().file()) {
forward_messages[field.message_type().full_name()] =
field.message_type();
}
}
}
for (auto ext : this_file_exts) {
if (ext.file() != ext.containing_type().file()) {
forward_messages[ext.containing_type().full_name()] =
ext.containing_type();
}
}
std::vector<upb::MessageDefPtr> ret;
ret.reserve(forward_messages.size());
for (const auto& pair : forward_messages) {
ret.push_back(pair.second);
}
return ret;
}
void WriteHeader(const DefPoolPair& pools, upb::FileDefPtr file,
const Options& options, Output& output) {
const std::vector<upb::MessageDefPtr> this_file_messages =
SortedMessages(file);
const std::vector<upb::FieldDefPtr> this_file_exts = SortedExtensions(file);
std::vector<upb::EnumDefPtr> this_file_enums = SortedEnums(file);
std::vector<upb::MessageDefPtr> forward_messages =
SortedForwardMessages(this_file_messages, this_file_exts);
EmitFileWarning(file.name(), output);
output(
"#ifndef $0_UPB_H_\n"
"#define $0_UPB_H_\n\n"
"#include \"upb/upb/generated_code_support.h\"\n",
"#include \"upb/upb/generated_code_support.h\"\n\n",
ToPreproc(file.name()));
for (int i = 0; i < file.public_dependency_count(); i++) {
@ -839,13 +874,23 @@ void WriteHeader(const DefPoolPair& pools, upb::FileDefPtr file,
output("/* Public Imports. */\n");
}
output("#include \"$0\"\n", CApiHeaderFilename(file.public_dependency(i)));
if (i == file.public_dependency_count() - 1) {
}
if (file.public_dependency_count() > 0) {
output("\n");
}
if (!options.bootstrap) {
output("#include \"$0\"\n\n", MiniTableHeaderFilename(file));
for (int i = 0; i < file.dependency_count(); i++) {
output("#include \"$0\"\n", MiniTableHeaderFilename(file.dependency(i)));
}
if (file.dependency_count() > 0) {
output("\n");
}
}
output(
"// Must be last. \n"
"// Must be last.\n"
"#include \"upb/upb/port/def.inc\"\n"
"\n"
"#ifdef __cplusplus\n"
@ -853,54 +898,34 @@ void WriteHeader(const DefPoolPair& pools, upb::FileDefPtr file,
"#endif\n"
"\n");
const std::vector<upb::MessageDefPtr> this_file_messages =
SortedMessages(file);
const std::vector<upb::FieldDefPtr> this_file_exts = SortedExtensions(file);
if (options.bootstrap) {
for (auto message : this_file_messages) {
output("extern const upb_MiniTable* $0();\n", MessageInitName(message));
}
for (auto message : forward_messages) {
output("extern const upb_MiniTable* $0();\n", MessageInitName(message));
}
for (auto enumdesc : this_file_enums) {
output("extern const upb_MiniTableEnum* $0();\n", EnumInit(enumdesc));
}
output("\n");
}
// Forward-declare types defined in this file.
for (auto message : this_file_messages) {
output("typedef struct $0 $0;\n", ToCIdent(message.full_name()));
}
for (auto message : this_file_messages) {
ForwardDeclareMiniTableInit(message, options, output);
}
for (auto ext : this_file_exts) {
output("extern const upb_MiniTableExtension $0;\n", ExtensionLayout(ext));
}
// Forward-declare types not in this file, but used as submessages.
// Order by full name for consistent ordering.
std::map<std::string, upb::MessageDefPtr> forward_messages;
for (auto message : this_file_messages) {
for (int i = 0; i < message.field_count(); i++) {
upb::FieldDefPtr field = message.field(i);
if (field.ctype() == kUpb_CType_Message &&
field.file() != field.message_type().file()) {
forward_messages[field.message_type().full_name()] =
field.message_type();
}
}
}
for (auto ext : this_file_exts) {
if (ext.file() != ext.containing_type().file()) {
forward_messages[ext.containing_type().full_name()] =
ext.containing_type();
}
}
for (const auto& pair : forward_messages) {
output("struct $0;\n", MessageName(pair.second));
}
for (const auto& pair : forward_messages) {
ForwardDeclareMiniTableInit(pair.second, options, output);
for (auto msg : forward_messages) {
output("struct $0;\n", MessageName(msg));
}
if (!this_file_messages.empty()) {
output("\n");
}
std::vector<upb::EnumDefPtr> this_file_enums = SortedEnums(file);
for (auto enumdesc : this_file_enums) {
output("typedef enum {\n");
DumpEnumValues(enumdesc, output);
@ -909,16 +934,6 @@ void WriteHeader(const DefPoolPair& pools, upb::FileDefPtr file,
output("\n");
if (file.syntax() == kUpb_Syntax_Proto2) {
for (const auto enumdesc : this_file_enums) {
if (options.bootstrap) {
output("extern const upb_MiniTableEnum* $0();\n", EnumInit(enumdesc));
} else {
output("extern const upb_MiniTableEnum $0;\n", EnumInit(enumdesc));
}
}
}
output("\n");
for (auto message : this_file_messages) {
GenerateMessageInHeader(message, pools, options, output);
@ -928,8 +943,6 @@ void WriteHeader(const DefPoolPair& pools, upb::FileDefPtr file,
GenerateExtensionInHeader(pools, ext, output);
}
output("extern const upb_MiniTableFile $0;\n\n", FileLayoutName(file));
if (absl::string_view(file.name()) == "google/protobuf/descriptor.proto" ||
absl::string_view(file.name()) == "net/proto2/proto/descriptor.proto") {
// This is gratuitously inefficient with how many times it rebuilds

@ -10,25 +10,28 @@
#define GOOGLE_PROTOBUF_COMPILER_PLUGIN_PROTO_UPB_H_
#include "upb/upb/generated_code_support.h"
// Must be last.
// Must be last.
#include "upb/upb/port/def.inc"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct google_protobuf_compiler_Version google_protobuf_compiler_Version;
typedef struct google_protobuf_compiler_CodeGeneratorRequest google_protobuf_compiler_CodeGeneratorRequest;
typedef struct google_protobuf_compiler_CodeGeneratorResponse google_protobuf_compiler_CodeGeneratorResponse;
typedef struct google_protobuf_compiler_CodeGeneratorResponse_File google_protobuf_compiler_CodeGeneratorResponse_File;
extern const upb_MiniTable* google_protobuf_compiler_Version_msg_init();
extern const upb_MiniTable* google_protobuf_compiler_CodeGeneratorRequest_msg_init();
extern const upb_MiniTable* google_protobuf_compiler_CodeGeneratorResponse_msg_init();
extern const upb_MiniTable* google_protobuf_compiler_CodeGeneratorResponse_File_msg_init();
struct google_protobuf_FileDescriptorProto;
struct google_protobuf_GeneratedCodeInfo;
extern const upb_MiniTable* google_protobuf_FileDescriptorProto_msg_init();
extern const upb_MiniTable* google_protobuf_GeneratedCodeInfo_msg_init();
extern const upb_MiniTableEnum* google_protobuf_compiler_CodeGeneratorResponse_Feature_enum_init();
typedef struct google_protobuf_compiler_Version google_protobuf_compiler_Version;
typedef struct google_protobuf_compiler_CodeGeneratorRequest google_protobuf_compiler_CodeGeneratorRequest;
typedef struct google_protobuf_compiler_CodeGeneratorResponse google_protobuf_compiler_CodeGeneratorResponse;
typedef struct google_protobuf_compiler_CodeGeneratorResponse_File google_protobuf_compiler_CodeGeneratorResponse_File;
struct google_protobuf_FileDescriptorProto;
struct google_protobuf_GeneratedCodeInfo;
typedef enum {
google_protobuf_compiler_CodeGeneratorResponse_FEATURE_NONE = 0,
@ -37,7 +40,6 @@ typedef enum {
} google_protobuf_compiler_CodeGeneratorResponse_Feature;
extern const upb_MiniTableEnum* google_protobuf_compiler_CodeGeneratorResponse_Feature_enum_init();
/* google.protobuf.compiler.Version */
@ -681,8 +683,6 @@ UPB_INLINE struct google_protobuf_GeneratedCodeInfo* google_protobuf_compiler_Co
return sub;
}
extern const upb_MiniTableFile google_protobuf_compiler_plugin_proto_upb_file_layout;
#ifdef __cplusplus
} /* extern "C" */
#endif

Loading…
Cancel
Save