2018-08-22 13:46:02 -07:00
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
|
|
// source: proto2/nested_messages.proto
|
|
|
|
|
2018-09-06 10:23:53 -07:00
|
|
|
package proto2
|
2018-08-22 13:46:02 -07:00
|
|
|
|
2018-09-13 13:12:36 -07:00
|
|
|
import (
|
|
|
|
proto "github.com/golang/protobuf/proto"
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
protoreflect "github.com/golang/protobuf/v2/reflect/protoreflect"
|
|
|
|
prototype "github.com/golang/protobuf/v2/reflect/prototype"
|
|
|
|
protoimpl "github.com/golang/protobuf/v2/runtime/protoimpl"
|
2018-09-13 13:12:36 -07:00
|
|
|
)
|
|
|
|
|
2018-09-12 11:13:49 -07:00
|
|
|
// This is a compile-time assertion to ensure that this generated file
|
|
|
|
// is compatible with the proto package it is being compiled against.
|
|
|
|
// A compilation error at this line likely means your copy of the
|
|
|
|
// proto package needs to be updated.
|
2018-11-26 12:57:27 -08:00
|
|
|
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
2018-09-12 11:13:49 -07:00
|
|
|
|
2018-08-22 13:46:02 -07:00
|
|
|
type Layer1 struct {
|
2018-09-10 12:26:21 -07:00
|
|
|
L2 *Layer1_Layer2 `protobuf:"bytes,1,opt,name=l2" json:"l2,omitempty"`
|
|
|
|
L3 *Layer1_Layer2_Layer3 `protobuf:"bytes,2,opt,name=l3" json:"l3,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
2018-08-22 13:46:02 -07:00
|
|
|
}
|
|
|
|
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
type xxx_Layer1 struct{ m *Layer1 }
|
|
|
|
|
|
|
|
func (m *Layer1) ProtoReflect() protoreflect.Message {
|
|
|
|
return xxx_Layer1{m}
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1) Type() protoreflect.MessageType {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[0].Type
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1) KnownFields() protoreflect.KnownFields {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[0].KnownFieldsOf(m.m)
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1) UnknownFields() protoreflect.UnknownFields {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[0].UnknownFieldsOf(m.m)
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1) Interface() protoreflect.ProtoMessage {
|
|
|
|
return m.m
|
|
|
|
}
|
|
|
|
|
2018-09-12 13:36:34 -07:00
|
|
|
func (m *Layer1) Reset() { *m = Layer1{} }
|
|
|
|
func (m *Layer1) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*Layer1) ProtoMessage() {}
|
|
|
|
func (*Layer1) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_7417ee157699d191, []int{0}
|
|
|
|
}
|
2018-09-14 15:41:11 -07:00
|
|
|
|
2018-09-12 13:36:34 -07:00
|
|
|
func (m *Layer1) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_Layer1.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *Layer1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_Layer1.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *Layer1) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_Layer1.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *Layer1) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_Layer1.Size(m)
|
|
|
|
}
|
|
|
|
func (m *Layer1) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_Layer1.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_Layer1 proto.InternalMessageInfo
|
|
|
|
|
2018-09-13 10:59:17 -07:00
|
|
|
func (m *Layer1) GetL2() *Layer1_Layer2 {
|
|
|
|
if m != nil {
|
|
|
|
return m.L2
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (m *Layer1) GetL3() *Layer1_Layer2_Layer3 {
|
|
|
|
if m != nil {
|
|
|
|
return m.L3
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2018-08-22 13:46:02 -07:00
|
|
|
type Layer1_Layer2 struct {
|
2018-09-10 12:26:21 -07:00
|
|
|
L3 *Layer1_Layer2_Layer3 `protobuf:"bytes,1,opt,name=l3" json:"l3,omitempty"`
|
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
2018-08-22 13:46:02 -07:00
|
|
|
}
|
|
|
|
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
type xxx_Layer1_Layer2 struct{ m *Layer1_Layer2 }
|
|
|
|
|
|
|
|
func (m *Layer1_Layer2) ProtoReflect() protoreflect.Message {
|
|
|
|
return xxx_Layer1_Layer2{m}
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2) Type() protoreflect.MessageType {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[1].Type
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2) KnownFields() protoreflect.KnownFields {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[1].KnownFieldsOf(m.m)
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2) UnknownFields() protoreflect.UnknownFields {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[1].UnknownFieldsOf(m.m)
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2) Interface() protoreflect.ProtoMessage {
|
|
|
|
return m.m
|
|
|
|
}
|
|
|
|
|
2018-09-12 13:36:34 -07:00
|
|
|
func (m *Layer1_Layer2) Reset() { *m = Layer1_Layer2{} }
|
|
|
|
func (m *Layer1_Layer2) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*Layer1_Layer2) ProtoMessage() {}
|
|
|
|
func (*Layer1_Layer2) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_7417ee157699d191, []int{0, 0}
|
|
|
|
}
|
2018-09-14 15:41:11 -07:00
|
|
|
|
2018-09-12 13:36:34 -07:00
|
|
|
func (m *Layer1_Layer2) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_Layer1_Layer2.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_Layer1_Layer2.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_Layer1_Layer2.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_Layer1_Layer2.Size(m)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_Layer1_Layer2.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_Layer1_Layer2 proto.InternalMessageInfo
|
|
|
|
|
2018-09-13 10:59:17 -07:00
|
|
|
func (m *Layer1_Layer2) GetL3() *Layer1_Layer2_Layer3 {
|
|
|
|
if m != nil {
|
|
|
|
return m.L3
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2018-08-22 13:46:02 -07:00
|
|
|
type Layer1_Layer2_Layer3 struct {
|
2018-09-10 12:26:21 -07:00
|
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
|
|
XXX_unrecognized []byte `json:"-"`
|
|
|
|
XXX_sizecache int32 `json:"-"`
|
2018-08-22 13:46:02 -07:00
|
|
|
}
|
2018-09-07 14:14:06 -07:00
|
|
|
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
type xxx_Layer1_Layer2_Layer3 struct{ m *Layer1_Layer2_Layer3 }
|
|
|
|
|
|
|
|
func (m *Layer1_Layer2_Layer3) ProtoReflect() protoreflect.Message {
|
|
|
|
return xxx_Layer1_Layer2_Layer3{m}
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2_Layer3) Type() protoreflect.MessageType {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[2].Type
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2_Layer3) KnownFields() protoreflect.KnownFields {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[2].KnownFieldsOf(m.m)
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2_Layer3) UnknownFields() protoreflect.UnknownFields {
|
|
|
|
return xxx_NestedMessages_ProtoFile_MessageTypes[2].UnknownFieldsOf(m.m)
|
|
|
|
}
|
|
|
|
func (m xxx_Layer1_Layer2_Layer3) Interface() protoreflect.ProtoMessage {
|
|
|
|
return m.m
|
|
|
|
}
|
|
|
|
|
2018-09-12 13:36:34 -07:00
|
|
|
func (m *Layer1_Layer2_Layer3) Reset() { *m = Layer1_Layer2_Layer3{} }
|
|
|
|
func (m *Layer1_Layer2_Layer3) String() string { return proto.CompactTextString(m) }
|
|
|
|
func (*Layer1_Layer2_Layer3) ProtoMessage() {}
|
|
|
|
func (*Layer1_Layer2_Layer3) Descriptor() ([]byte, []int) {
|
|
|
|
return fileDescriptor_7417ee157699d191, []int{0, 0, 0}
|
|
|
|
}
|
2018-09-14 15:41:11 -07:00
|
|
|
|
2018-09-12 13:36:34 -07:00
|
|
|
func (m *Layer1_Layer2_Layer3) XXX_Unmarshal(b []byte) error {
|
|
|
|
return xxx_messageInfo_Layer1_Layer2_Layer3.Unmarshal(m, b)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2_Layer3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
|
|
return xxx_messageInfo_Layer1_Layer2_Layer3.Marshal(b, m, deterministic)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2_Layer3) XXX_Merge(src proto.Message) {
|
|
|
|
xxx_messageInfo_Layer1_Layer2_Layer3.Merge(m, src)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2_Layer3) XXX_Size() int {
|
|
|
|
return xxx_messageInfo_Layer1_Layer2_Layer3.Size(m)
|
|
|
|
}
|
|
|
|
func (m *Layer1_Layer2_Layer3) XXX_DiscardUnknown() {
|
|
|
|
xxx_messageInfo_Layer1_Layer2_Layer3.DiscardUnknown(m)
|
|
|
|
}
|
|
|
|
|
|
|
|
var xxx_messageInfo_Layer1_Layer2_Layer3 proto.InternalMessageInfo
|
|
|
|
|
2018-09-13 15:19:08 -07:00
|
|
|
func init() {
|
2018-12-05 15:42:52 -08:00
|
|
|
proto.RegisterFile("proto2/nested_messages.proto", fileDescriptor_7417ee157699d191)
|
2018-09-13 15:19:08 -07:00
|
|
|
proto.RegisterType((*Layer1)(nil), "goproto.protoc.proto2.Layer1")
|
|
|
|
proto.RegisterType((*Layer1_Layer2)(nil), "goproto.protoc.proto2.Layer1.Layer2")
|
|
|
|
proto.RegisterType((*Layer1_Layer2_Layer3)(nil), "goproto.protoc.proto2.Layer1.Layer2.Layer3")
|
|
|
|
}
|
|
|
|
|
2018-09-07 14:14:06 -07:00
|
|
|
var fileDescriptor_7417ee157699d191 = []byte{
|
2018-09-19 13:21:58 -07:00
|
|
|
// 190 bytes of a gzipped FileDescriptorProto
|
2018-09-07 14:14:06 -07:00
|
|
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x29, 0x28, 0xca, 0x2f,
|
|
|
|
0xc9, 0x37, 0xd2, 0xcf, 0x4b, 0x2d, 0x2e, 0x49, 0x4d, 0x89, 0xcf, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c,
|
|
|
|
0x4f, 0x2d, 0xd6, 0x03, 0x0b, 0x0b, 0x89, 0xa6, 0xe7, 0x83, 0x19, 0x10, 0x6e, 0x32, 0x84, 0x32,
|
|
|
|
0x52, 0x3a, 0xc3, 0xc8, 0xc5, 0xe6, 0x93, 0x58, 0x99, 0x5a, 0x64, 0x28, 0x64, 0xc2, 0xc5, 0x94,
|
|
|
|
0x63, 0x24, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0xa4, 0xa2, 0x87, 0x55, 0xb9, 0x1e, 0x44, 0x29,
|
|
|
|
0x84, 0x32, 0x0a, 0x62, 0xca, 0x31, 0x12, 0xb2, 0xe6, 0x62, 0xca, 0x31, 0x96, 0x60, 0x02, 0xeb,
|
|
|
|
0xd2, 0x26, 0x46, 0x17, 0x84, 0x32, 0x0e, 0x62, 0xca, 0x31, 0x96, 0xf2, 0x87, 0x5a, 0x0e, 0x33,
|
2018-09-19 13:21:58 -07:00
|
|
|
0x86, 0x91, 0x3c, 0x63, 0x38, 0xa0, 0xc6, 0x18, 0x3b, 0x39, 0x46, 0xd9, 0xa7, 0x67, 0x96, 0x64,
|
|
|
|
0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, 0xeb, 0x83, 0xb5,
|
|
|
|
0x27, 0x95, 0xa6, 0xe9, 0x97, 0x19, 0xe9, 0x27, 0xe7, 0xa6, 0x40, 0xf8, 0xc9, 0xba, 0xe9, 0xa9,
|
|
|
|
0x79, 0xba, 0xe9, 0xf9, 0xfa, 0x25, 0xa9, 0xc5, 0x25, 0x29, 0x89, 0x25, 0x89, 0x10, 0x61, 0x23,
|
|
|
|
0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x11, 0x21, 0xb0, 0x06, 0x47, 0x01, 0x00, 0x00,
|
2018-09-07 14:14:06 -07:00
|
|
|
}
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
|
|
|
|
func init() {
|
|
|
|
xxx_NestedMessages_ProtoFile_FileDesc.Messages = xxx_NestedMessages_ProtoFile_MessageDescs[0:1]
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[0].Messages = xxx_NestedMessages_ProtoFile_MessageDescs[1:2]
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[1].Messages = xxx_NestedMessages_ProtoFile_MessageDescs[2:3]
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[0].Fields[0].MessageType = xxx_NestedMessages_ProtoFile_MessageTypes[1].Type
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[0].Fields[1].MessageType = xxx_NestedMessages_ProtoFile_MessageTypes[2].Type
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[1].Fields[0].MessageType = xxx_NestedMessages_ProtoFile_MessageTypes[2].Type
|
|
|
|
var err error
|
|
|
|
NestedMessages_ProtoFile, err = prototype.NewFile(&xxx_NestedMessages_ProtoFile_FileDesc)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
|
|
|
|
|
|
|
|
var NestedMessages_ProtoFile protoreflect.FileDescriptor
|
|
|
|
|
|
|
|
var xxx_NestedMessages_ProtoFile_FileDesc = prototype.File{
|
|
|
|
Syntax: protoreflect.Proto2,
|
|
|
|
Path: "proto2/nested_messages.proto",
|
|
|
|
Package: "goproto.protoc.proto2",
|
|
|
|
}
|
|
|
|
var xxx_NestedMessages_ProtoFile_MessageTypes = [3]protoimpl.MessageType{
|
|
|
|
{Type: prototype.GoMessage(
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[0].Reference(),
|
2019-01-09 02:57:13 -08:00
|
|
|
func(protoreflect.MessageType) protoreflect.Message {
|
|
|
|
return xxx_Layer1{new(Layer1)}
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
},
|
|
|
|
)},
|
|
|
|
{Type: prototype.GoMessage(
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[1].Reference(),
|
2019-01-09 02:57:13 -08:00
|
|
|
func(protoreflect.MessageType) protoreflect.Message {
|
|
|
|
return xxx_Layer1_Layer2{new(Layer1_Layer2)}
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
},
|
|
|
|
)},
|
|
|
|
{Type: prototype.GoMessage(
|
|
|
|
xxx_NestedMessages_ProtoFile_MessageDescs[2].Reference(),
|
2019-01-09 02:57:13 -08:00
|
|
|
func(protoreflect.MessageType) protoreflect.Message {
|
|
|
|
return xxx_Layer1_Layer2_Layer3{new(Layer1_Layer2_Layer3)}
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
},
|
|
|
|
)},
|
|
|
|
}
|
|
|
|
var xxx_NestedMessages_ProtoFile_MessageDescs = [3]prototype.Message{
|
|
|
|
{
|
|
|
|
Name: "Layer1",
|
|
|
|
Fields: []prototype.Field{
|
|
|
|
{
|
|
|
|
Name: "l2",
|
|
|
|
Number: 1,
|
|
|
|
Cardinality: protoreflect.Optional,
|
|
|
|
Kind: protoreflect.MessageKind,
|
|
|
|
JSONName: "l2",
|
2018-12-10 15:14:36 -08:00
|
|
|
IsPacked: prototype.False,
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "l3",
|
|
|
|
Number: 2,
|
|
|
|
Cardinality: protoreflect.Optional,
|
|
|
|
Kind: protoreflect.MessageKind,
|
|
|
|
JSONName: "l3",
|
2018-12-10 15:14:36 -08:00
|
|
|
IsPacked: prototype.False,
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Layer2",
|
|
|
|
Fields: []prototype.Field{
|
|
|
|
{
|
|
|
|
Name: "l3",
|
|
|
|
Number: 1,
|
|
|
|
Cardinality: protoreflect.Optional,
|
|
|
|
Kind: protoreflect.MessageKind,
|
|
|
|
JSONName: "l3",
|
2018-12-10 15:14:36 -08:00
|
|
|
IsPacked: prototype.False,
|
cmd/protoc-gen-go: add support for protobuf reflection
Implement support in protoc-gen-go for generating messages and enums
that satisfy the v2 protobuf reflection interfaces. Specifically, the following
are added:
* top-level variable representing the file descriptor
* ProtoReflect method on enums (to implement protoV2.Enum)
* ProtoReflect method on messages (to implement protoV2.Message)
The following are not supported yet:
* resolving transitive dependencies for file imports
* Extension descriptors
* Service descriptors
The implementation approach creates a single array for all the message and enum
declarations and references sections of that array to complete dependencies.
Since protobuf declarations can form a graph (a message may depend on itself),
it is difficult to construct a graph as a single literal. One way is to use
placeholder descriptors, but that is not efficient as it requires encoding
the full name of each dependent enum and message and then later resolving it;
thus, both expanding the binary size and also increasing initialization cost.
Instead, we add a prototype.{Enum,Message}.Reference method to obtain a
descriptor reference for the purposes for satisfying dependencies.
As such, nested declarations and dependencies are populated in an init function.
Other changes to support the implementation:
* Added a protoimpl package to expose the MessageType type and also the
MessageTypeOf and EnumTypeOf helper functions.
* Added a protogen.File.GoIdent field to provide a suggested variable name
for the file descriptor.
* Added prototype.{Enum,Message}.Reference that provides a descriptor reference
for the purposes for satisfying cyclic dependencies.
* Added protoreflect.{Syntax,Cardinality,Kind}.GoString to obtain a Go source
identifier that represents the given constant.
Change-Id: I9455764882dee6ad10f251901e7d419091e8bf1d
Reviewed-on: https://go-review.googlesource.com/c/150074
Reviewed-by: Damien Neil <dneil@google.com>
2018-11-15 14:44:37 -08:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Layer3",
|
|
|
|
},
|
|
|
|
}
|