message_reflect_gen.go raw

   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  
   7  package impl
   8  
   9  import (
  10  	"google.golang.org/protobuf/reflect/protoreflect"
  11  	"google.golang.org/protobuf/runtime/protoiface"
  12  )
  13  
  14  func (m *messageState) Descriptor() protoreflect.MessageDescriptor {
  15  	return m.messageInfo().Desc
  16  }
  17  func (m *messageState) Type() protoreflect.MessageType {
  18  	return m.messageInfo()
  19  }
  20  func (m *messageState) New() protoreflect.Message {
  21  	return m.messageInfo().New()
  22  }
  23  func (m *messageState) Interface() protoreflect.ProtoMessage {
  24  	return m.protoUnwrap().(protoreflect.ProtoMessage)
  25  }
  26  func (m *messageState) protoUnwrap() any {
  27  	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
  28  }
  29  func (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.
  40  func (m *messageState) ProtoMessageInfo() *MessageInfo {
  41  	return m.messageInfo()
  42  }
  43  
  44  func (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  }
  66  func (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  }
  75  func (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  }
  84  func (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  }
  93  func (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  }
 102  func (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  }
 111  func (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  }
 120  func (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  }
 128  func (m *messageState) GetUnknown() protoreflect.RawFields {
 129  	mi := m.messageInfo()
 130  	mi.init()
 131  	return mi.getUnknown(m.pointer())
 132  }
 133  func (m *messageState) SetUnknown(b protoreflect.RawFields) {
 134  	mi := m.messageInfo()
 135  	mi.init()
 136  	mi.setUnknown(m.pointer(), b)
 137  }
 138  func (m *messageState) IsValid() bool {
 139  	return !m.pointer().IsNil()
 140  }
 141  
 142  func (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor {
 143  	return m.messageInfo().Desc
 144  }
 145  func (m *messageReflectWrapper) Type() protoreflect.MessageType {
 146  	return m.messageInfo()
 147  }
 148  func (m *messageReflectWrapper) New() protoreflect.Message {
 149  	return m.messageInfo().New()
 150  }
 151  func (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage {
 152  	if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {
 153  		return m
 154  	}
 155  	return (*messageIfaceWrapper)(m)
 156  }
 157  func (m *messageReflectWrapper) protoUnwrap() any {
 158  	return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
 159  }
 160  func (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.
 171  func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo {
 172  	return m.messageInfo()
 173  }
 174  
 175  func (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  }
 197  func (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  }
 206  func (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  }
 215  func (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  }
 224  func (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  }
 233  func (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  }
 242  func (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  }
 251  func (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  }
 259  func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields {
 260  	mi := m.messageInfo()
 261  	mi.init()
 262  	return mi.getUnknown(m.pointer())
 263  }
 264  func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) {
 265  	mi := m.messageInfo()
 266  	mi.init()
 267  	mi.setUnknown(m.pointer(), b)
 268  }
 269  func (m *messageReflectWrapper) IsValid() bool {
 270  	return !m.pointer().IsNil()
 271  }
 272