// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated by generate-types. DO NOT EDIT.

package impl

import (
	
	
)

func ( *messageState) () protoreflect.MessageDescriptor {
	return .messageInfo().Desc
}
func ( *messageState) () protoreflect.MessageType {
	return .messageInfo()
}
func ( *messageState) () protoreflect.Message {
	return .messageInfo().New()
}
func ( *messageState) () protoreflect.ProtoMessage {
	return .protoUnwrap().(protoreflect.ProtoMessage)
}
func ( *messageState) () interface{} {
	return .pointer().AsIfaceOf(.messageInfo().GoReflectType.Elem())
}
func ( *messageState) () *protoiface.Methods {
	.messageInfo().init()
	return &.messageInfo().methods
}

// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
// to be able to retrieve a v2 MessageInfo struct.
//
// WARNING: This method is exempt from the compatibility promise and
// may be removed in the future without warning.
func ( *messageState) () *MessageInfo {
	return .messageInfo()
}

func ( *messageState) ( func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	.messageInfo().init()
	for ,  := range .messageInfo().rangeInfos {
		switch ri := .(type) {
		case *fieldInfo:
			if .has(.pointer()) {
				if !(.fieldDesc, .get(.pointer())) {
					return
				}
			}
		case *oneofInfo:
			if  := .which(.pointer());  > 0 {
				 := .messageInfo().fields[]
				if !(.fieldDesc, .get(.pointer())) {
					return
				}
			}
		}
	}
	.messageInfo().extensionMap(.pointer()).Range()
}
func ( *messageState) ( protoreflect.FieldDescriptor) bool {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .has(.pointer())
	} else {
		return .messageInfo().extensionMap(.pointer()).Has()
	}
}
func ( *messageState) ( protoreflect.FieldDescriptor) {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		.clear(.pointer())
	} else {
		.messageInfo().extensionMap(.pointer()).Clear()
	}
}
func ( *messageState) ( protoreflect.FieldDescriptor) protoreflect.Value {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .get(.pointer())
	} else {
		return .messageInfo().extensionMap(.pointer()).Get()
	}
}
func ( *messageState) ( protoreflect.FieldDescriptor,  protoreflect.Value) {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		.set(.pointer(), )
	} else {
		.messageInfo().extensionMap(.pointer()).Set(, )
	}
}
func ( *messageState) ( protoreflect.FieldDescriptor) protoreflect.Value {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .mutable(.pointer())
	} else {
		return .messageInfo().extensionMap(.pointer()).Mutable()
	}
}
func ( *messageState) ( protoreflect.FieldDescriptor) protoreflect.Value {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .newField()
	} else {
		return .New()
	}
}
func ( *messageState) ( protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	.messageInfo().init()
	if  := .messageInfo().oneofs[.Name()];  != nil && .oneofDesc ==  {
		return .Fields().ByNumber(.which(.pointer()))
	}
	panic("invalid oneof descriptor " + string(.FullName()) + " for message " + string(.Descriptor().FullName()))
}
func ( *messageState) () protoreflect.RawFields {
	.messageInfo().init()
	return .messageInfo().getUnknown(.pointer())
}
func ( *messageState) ( protoreflect.RawFields) {
	.messageInfo().init()
	.messageInfo().setUnknown(.pointer(), )
}
func ( *messageState) () bool {
	return !.pointer().IsNil()
}

func ( *messageReflectWrapper) () protoreflect.MessageDescriptor {
	return .messageInfo().Desc
}
func ( *messageReflectWrapper) () protoreflect.MessageType {
	return .messageInfo()
}
func ( *messageReflectWrapper) () protoreflect.Message {
	return .messageInfo().New()
}
func ( *messageReflectWrapper) () protoreflect.ProtoMessage {
	if ,  := .protoUnwrap().(protoreflect.ProtoMessage);  {
		return 
	}
	return (*messageIfaceWrapper)()
}
func ( *messageReflectWrapper) () interface{} {
	return .pointer().AsIfaceOf(.messageInfo().GoReflectType.Elem())
}
func ( *messageReflectWrapper) () *protoiface.Methods {
	.messageInfo().init()
	return &.messageInfo().methods
}

// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code
// to be able to retrieve a v2 MessageInfo struct.
//
// WARNING: This method is exempt from the compatibility promise and
// may be removed in the future without warning.
func ( *messageReflectWrapper) () *MessageInfo {
	return .messageInfo()
}

func ( *messageReflectWrapper) ( func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	.messageInfo().init()
	for ,  := range .messageInfo().rangeInfos {
		switch ri := .(type) {
		case *fieldInfo:
			if .has(.pointer()) {
				if !(.fieldDesc, .get(.pointer())) {
					return
				}
			}
		case *oneofInfo:
			if  := .which(.pointer());  > 0 {
				 := .messageInfo().fields[]
				if !(.fieldDesc, .get(.pointer())) {
					return
				}
			}
		}
	}
	.messageInfo().extensionMap(.pointer()).Range()
}
func ( *messageReflectWrapper) ( protoreflect.FieldDescriptor) bool {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .has(.pointer())
	} else {
		return .messageInfo().extensionMap(.pointer()).Has()
	}
}
func ( *messageReflectWrapper) ( protoreflect.FieldDescriptor) {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		.clear(.pointer())
	} else {
		.messageInfo().extensionMap(.pointer()).Clear()
	}
}
func ( *messageReflectWrapper) ( protoreflect.FieldDescriptor) protoreflect.Value {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .get(.pointer())
	} else {
		return .messageInfo().extensionMap(.pointer()).Get()
	}
}
func ( *messageReflectWrapper) ( protoreflect.FieldDescriptor,  protoreflect.Value) {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		.set(.pointer(), )
	} else {
		.messageInfo().extensionMap(.pointer()).Set(, )
	}
}
func ( *messageReflectWrapper) ( protoreflect.FieldDescriptor) protoreflect.Value {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .mutable(.pointer())
	} else {
		return .messageInfo().extensionMap(.pointer()).Mutable()
	}
}
func ( *messageReflectWrapper) ( protoreflect.FieldDescriptor) protoreflect.Value {
	.messageInfo().init()
	if ,  := .messageInfo().checkField();  != nil {
		return .newField()
	} else {
		return .New()
	}
}
func ( *messageReflectWrapper) ( protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	.messageInfo().init()
	if  := .messageInfo().oneofs[.Name()];  != nil && .oneofDesc ==  {
		return .Fields().ByNumber(.which(.pointer()))
	}
	panic("invalid oneof descriptor " + string(.FullName()) + " for message " + string(.Descriptor().FullName()))
}
func ( *messageReflectWrapper) () protoreflect.RawFields {
	.messageInfo().init()
	return .messageInfo().getUnknown(.pointer())
}
func ( *messageReflectWrapper) ( protoreflect.RawFields) {
	.messageInfo().init()
	.messageInfo().setUnknown(.pointer(), )
}
func ( *messageReflectWrapper) () bool {
	return !.pointer().IsNil()
}