1*1c12ee1eSDan Willemsen// Copyright 2018 The Go Authors. All rights reserved. 2*1c12ee1eSDan Willemsen// Use of this source code is governed by a BSD-style 3*1c12ee1eSDan Willemsen// license that can be found in the LICENSE file. 4*1c12ee1eSDan Willemsen 5*1c12ee1eSDan Willemsen// Code generated by generate-types. DO NOT EDIT. 6*1c12ee1eSDan Willemsen 7*1c12ee1eSDan Willemsenpackage impl 8*1c12ee1eSDan Willemsen 9*1c12ee1eSDan Willemsenimport ( 10*1c12ee1eSDan Willemsen "google.golang.org/protobuf/reflect/protoreflect" 11*1c12ee1eSDan Willemsen "google.golang.org/protobuf/runtime/protoiface" 12*1c12ee1eSDan Willemsen) 13*1c12ee1eSDan Willemsen 14*1c12ee1eSDan Willemsenfunc (m *messageState) Descriptor() protoreflect.MessageDescriptor { 15*1c12ee1eSDan Willemsen return m.messageInfo().Desc 16*1c12ee1eSDan Willemsen} 17*1c12ee1eSDan Willemsenfunc (m *messageState) Type() protoreflect.MessageType { 18*1c12ee1eSDan Willemsen return m.messageInfo() 19*1c12ee1eSDan Willemsen} 20*1c12ee1eSDan Willemsenfunc (m *messageState) New() protoreflect.Message { 21*1c12ee1eSDan Willemsen return m.messageInfo().New() 22*1c12ee1eSDan Willemsen} 23*1c12ee1eSDan Willemsenfunc (m *messageState) Interface() protoreflect.ProtoMessage { 24*1c12ee1eSDan Willemsen return m.protoUnwrap().(protoreflect.ProtoMessage) 25*1c12ee1eSDan Willemsen} 26*1c12ee1eSDan Willemsenfunc (m *messageState) protoUnwrap() interface{} { 27*1c12ee1eSDan Willemsen return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) 28*1c12ee1eSDan Willemsen} 29*1c12ee1eSDan Willemsenfunc (m *messageState) ProtoMethods() *protoiface.Methods { 30*1c12ee1eSDan Willemsen m.messageInfo().init() 31*1c12ee1eSDan Willemsen return &m.messageInfo().methods 32*1c12ee1eSDan Willemsen} 33*1c12ee1eSDan Willemsen 34*1c12ee1eSDan Willemsen// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code 35*1c12ee1eSDan Willemsen// to be able to retrieve a v2 MessageInfo struct. 36*1c12ee1eSDan Willemsen// 37*1c12ee1eSDan Willemsen// WARNING: This method is exempt from the compatibility promise and 38*1c12ee1eSDan Willemsen// may be removed in the future without warning. 39*1c12ee1eSDan Willemsenfunc (m *messageState) ProtoMessageInfo() *MessageInfo { 40*1c12ee1eSDan Willemsen return m.messageInfo() 41*1c12ee1eSDan Willemsen} 42*1c12ee1eSDan Willemsen 43*1c12ee1eSDan Willemsenfunc (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { 44*1c12ee1eSDan Willemsen m.messageInfo().init() 45*1c12ee1eSDan Willemsen for _, ri := range m.messageInfo().rangeInfos { 46*1c12ee1eSDan Willemsen switch ri := ri.(type) { 47*1c12ee1eSDan Willemsen case *fieldInfo: 48*1c12ee1eSDan Willemsen if ri.has(m.pointer()) { 49*1c12ee1eSDan Willemsen if !f(ri.fieldDesc, ri.get(m.pointer())) { 50*1c12ee1eSDan Willemsen return 51*1c12ee1eSDan Willemsen } 52*1c12ee1eSDan Willemsen } 53*1c12ee1eSDan Willemsen case *oneofInfo: 54*1c12ee1eSDan Willemsen if n := ri.which(m.pointer()); n > 0 { 55*1c12ee1eSDan Willemsen fi := m.messageInfo().fields[n] 56*1c12ee1eSDan Willemsen if !f(fi.fieldDesc, fi.get(m.pointer())) { 57*1c12ee1eSDan Willemsen return 58*1c12ee1eSDan Willemsen } 59*1c12ee1eSDan Willemsen } 60*1c12ee1eSDan Willemsen } 61*1c12ee1eSDan Willemsen } 62*1c12ee1eSDan Willemsen m.messageInfo().extensionMap(m.pointer()).Range(f) 63*1c12ee1eSDan Willemsen} 64*1c12ee1eSDan Willemsenfunc (m *messageState) Has(fd protoreflect.FieldDescriptor) bool { 65*1c12ee1eSDan Willemsen m.messageInfo().init() 66*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 67*1c12ee1eSDan Willemsen return fi.has(m.pointer()) 68*1c12ee1eSDan Willemsen } else { 69*1c12ee1eSDan Willemsen return m.messageInfo().extensionMap(m.pointer()).Has(xt) 70*1c12ee1eSDan Willemsen } 71*1c12ee1eSDan Willemsen} 72*1c12ee1eSDan Willemsenfunc (m *messageState) Clear(fd protoreflect.FieldDescriptor) { 73*1c12ee1eSDan Willemsen m.messageInfo().init() 74*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 75*1c12ee1eSDan Willemsen fi.clear(m.pointer()) 76*1c12ee1eSDan Willemsen } else { 77*1c12ee1eSDan Willemsen m.messageInfo().extensionMap(m.pointer()).Clear(xt) 78*1c12ee1eSDan Willemsen } 79*1c12ee1eSDan Willemsen} 80*1c12ee1eSDan Willemsenfunc (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { 81*1c12ee1eSDan Willemsen m.messageInfo().init() 82*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 83*1c12ee1eSDan Willemsen return fi.get(m.pointer()) 84*1c12ee1eSDan Willemsen } else { 85*1c12ee1eSDan Willemsen return m.messageInfo().extensionMap(m.pointer()).Get(xt) 86*1c12ee1eSDan Willemsen } 87*1c12ee1eSDan Willemsen} 88*1c12ee1eSDan Willemsenfunc (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { 89*1c12ee1eSDan Willemsen m.messageInfo().init() 90*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 91*1c12ee1eSDan Willemsen fi.set(m.pointer(), v) 92*1c12ee1eSDan Willemsen } else { 93*1c12ee1eSDan Willemsen m.messageInfo().extensionMap(m.pointer()).Set(xt, v) 94*1c12ee1eSDan Willemsen } 95*1c12ee1eSDan Willemsen} 96*1c12ee1eSDan Willemsenfunc (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { 97*1c12ee1eSDan Willemsen m.messageInfo().init() 98*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 99*1c12ee1eSDan Willemsen return fi.mutable(m.pointer()) 100*1c12ee1eSDan Willemsen } else { 101*1c12ee1eSDan Willemsen return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) 102*1c12ee1eSDan Willemsen } 103*1c12ee1eSDan Willemsen} 104*1c12ee1eSDan Willemsenfunc (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { 105*1c12ee1eSDan Willemsen m.messageInfo().init() 106*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 107*1c12ee1eSDan Willemsen return fi.newField() 108*1c12ee1eSDan Willemsen } else { 109*1c12ee1eSDan Willemsen return xt.New() 110*1c12ee1eSDan Willemsen } 111*1c12ee1eSDan Willemsen} 112*1c12ee1eSDan Willemsenfunc (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { 113*1c12ee1eSDan Willemsen m.messageInfo().init() 114*1c12ee1eSDan Willemsen if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { 115*1c12ee1eSDan Willemsen return od.Fields().ByNumber(oi.which(m.pointer())) 116*1c12ee1eSDan Willemsen } 117*1c12ee1eSDan Willemsen panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) 118*1c12ee1eSDan Willemsen} 119*1c12ee1eSDan Willemsenfunc (m *messageState) GetUnknown() protoreflect.RawFields { 120*1c12ee1eSDan Willemsen m.messageInfo().init() 121*1c12ee1eSDan Willemsen return m.messageInfo().getUnknown(m.pointer()) 122*1c12ee1eSDan Willemsen} 123*1c12ee1eSDan Willemsenfunc (m *messageState) SetUnknown(b protoreflect.RawFields) { 124*1c12ee1eSDan Willemsen m.messageInfo().init() 125*1c12ee1eSDan Willemsen m.messageInfo().setUnknown(m.pointer(), b) 126*1c12ee1eSDan Willemsen} 127*1c12ee1eSDan Willemsenfunc (m *messageState) IsValid() bool { 128*1c12ee1eSDan Willemsen return !m.pointer().IsNil() 129*1c12ee1eSDan Willemsen} 130*1c12ee1eSDan Willemsen 131*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor { 132*1c12ee1eSDan Willemsen return m.messageInfo().Desc 133*1c12ee1eSDan Willemsen} 134*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Type() protoreflect.MessageType { 135*1c12ee1eSDan Willemsen return m.messageInfo() 136*1c12ee1eSDan Willemsen} 137*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) New() protoreflect.Message { 138*1c12ee1eSDan Willemsen return m.messageInfo().New() 139*1c12ee1eSDan Willemsen} 140*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage { 141*1c12ee1eSDan Willemsen if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok { 142*1c12ee1eSDan Willemsen return m 143*1c12ee1eSDan Willemsen } 144*1c12ee1eSDan Willemsen return (*messageIfaceWrapper)(m) 145*1c12ee1eSDan Willemsen} 146*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) protoUnwrap() interface{} { 147*1c12ee1eSDan Willemsen return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) 148*1c12ee1eSDan Willemsen} 149*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods { 150*1c12ee1eSDan Willemsen m.messageInfo().init() 151*1c12ee1eSDan Willemsen return &m.messageInfo().methods 152*1c12ee1eSDan Willemsen} 153*1c12ee1eSDan Willemsen 154*1c12ee1eSDan Willemsen// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code 155*1c12ee1eSDan Willemsen// to be able to retrieve a v2 MessageInfo struct. 156*1c12ee1eSDan Willemsen// 157*1c12ee1eSDan Willemsen// WARNING: This method is exempt from the compatibility promise and 158*1c12ee1eSDan Willemsen// may be removed in the future without warning. 159*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo { 160*1c12ee1eSDan Willemsen return m.messageInfo() 161*1c12ee1eSDan Willemsen} 162*1c12ee1eSDan Willemsen 163*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { 164*1c12ee1eSDan Willemsen m.messageInfo().init() 165*1c12ee1eSDan Willemsen for _, ri := range m.messageInfo().rangeInfos { 166*1c12ee1eSDan Willemsen switch ri := ri.(type) { 167*1c12ee1eSDan Willemsen case *fieldInfo: 168*1c12ee1eSDan Willemsen if ri.has(m.pointer()) { 169*1c12ee1eSDan Willemsen if !f(ri.fieldDesc, ri.get(m.pointer())) { 170*1c12ee1eSDan Willemsen return 171*1c12ee1eSDan Willemsen } 172*1c12ee1eSDan Willemsen } 173*1c12ee1eSDan Willemsen case *oneofInfo: 174*1c12ee1eSDan Willemsen if n := ri.which(m.pointer()); n > 0 { 175*1c12ee1eSDan Willemsen fi := m.messageInfo().fields[n] 176*1c12ee1eSDan Willemsen if !f(fi.fieldDesc, fi.get(m.pointer())) { 177*1c12ee1eSDan Willemsen return 178*1c12ee1eSDan Willemsen } 179*1c12ee1eSDan Willemsen } 180*1c12ee1eSDan Willemsen } 181*1c12ee1eSDan Willemsen } 182*1c12ee1eSDan Willemsen m.messageInfo().extensionMap(m.pointer()).Range(f) 183*1c12ee1eSDan Willemsen} 184*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool { 185*1c12ee1eSDan Willemsen m.messageInfo().init() 186*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 187*1c12ee1eSDan Willemsen return fi.has(m.pointer()) 188*1c12ee1eSDan Willemsen } else { 189*1c12ee1eSDan Willemsen return m.messageInfo().extensionMap(m.pointer()).Has(xt) 190*1c12ee1eSDan Willemsen } 191*1c12ee1eSDan Willemsen} 192*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) { 193*1c12ee1eSDan Willemsen m.messageInfo().init() 194*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 195*1c12ee1eSDan Willemsen fi.clear(m.pointer()) 196*1c12ee1eSDan Willemsen } else { 197*1c12ee1eSDan Willemsen m.messageInfo().extensionMap(m.pointer()).Clear(xt) 198*1c12ee1eSDan Willemsen } 199*1c12ee1eSDan Willemsen} 200*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { 201*1c12ee1eSDan Willemsen m.messageInfo().init() 202*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 203*1c12ee1eSDan Willemsen return fi.get(m.pointer()) 204*1c12ee1eSDan Willemsen } else { 205*1c12ee1eSDan Willemsen return m.messageInfo().extensionMap(m.pointer()).Get(xt) 206*1c12ee1eSDan Willemsen } 207*1c12ee1eSDan Willemsen} 208*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { 209*1c12ee1eSDan Willemsen m.messageInfo().init() 210*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 211*1c12ee1eSDan Willemsen fi.set(m.pointer(), v) 212*1c12ee1eSDan Willemsen } else { 213*1c12ee1eSDan Willemsen m.messageInfo().extensionMap(m.pointer()).Set(xt, v) 214*1c12ee1eSDan Willemsen } 215*1c12ee1eSDan Willemsen} 216*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { 217*1c12ee1eSDan Willemsen m.messageInfo().init() 218*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 219*1c12ee1eSDan Willemsen return fi.mutable(m.pointer()) 220*1c12ee1eSDan Willemsen } else { 221*1c12ee1eSDan Willemsen return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) 222*1c12ee1eSDan Willemsen } 223*1c12ee1eSDan Willemsen} 224*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { 225*1c12ee1eSDan Willemsen m.messageInfo().init() 226*1c12ee1eSDan Willemsen if fi, xt := m.messageInfo().checkField(fd); fi != nil { 227*1c12ee1eSDan Willemsen return fi.newField() 228*1c12ee1eSDan Willemsen } else { 229*1c12ee1eSDan Willemsen return xt.New() 230*1c12ee1eSDan Willemsen } 231*1c12ee1eSDan Willemsen} 232*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { 233*1c12ee1eSDan Willemsen m.messageInfo().init() 234*1c12ee1eSDan Willemsen if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { 235*1c12ee1eSDan Willemsen return od.Fields().ByNumber(oi.which(m.pointer())) 236*1c12ee1eSDan Willemsen } 237*1c12ee1eSDan Willemsen panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) 238*1c12ee1eSDan Willemsen} 239*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields { 240*1c12ee1eSDan Willemsen m.messageInfo().init() 241*1c12ee1eSDan Willemsen return m.messageInfo().getUnknown(m.pointer()) 242*1c12ee1eSDan Willemsen} 243*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) { 244*1c12ee1eSDan Willemsen m.messageInfo().init() 245*1c12ee1eSDan Willemsen m.messageInfo().setUnknown(m.pointer(), b) 246*1c12ee1eSDan Willemsen} 247*1c12ee1eSDan Willemsenfunc (m *messageReflectWrapper) IsValid() bool { 248*1c12ee1eSDan Willemsen return !m.pointer().IsNil() 249*1c12ee1eSDan Willemsen} 250