message_reflect_gen.go

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