// Copyright 2024 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 protoc-gen-go. DO NOT EDIT.
// source: internal/testprotos/testeditions/testeditions_hybrid/test_extension2.hybrid.proto

//go:build protoopaque

package testeditions_hybrid

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	_ "google.golang.org/protobuf/types/gofeaturespb"
	reflect "reflect"
	unsafe "unsafe"
)

type OtherRepeatedFieldEncoding struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OtherRepeatedFieldEncoding) Reset() {
	*x = OtherRepeatedFieldEncoding{}
	mi := &file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OtherRepeatedFieldEncoding) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OtherRepeatedFieldEncoding) ProtoMessage() {}

func (x *OtherRepeatedFieldEncoding) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

type OtherRepeatedFieldEncoding_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

}

func (b0 OtherRepeatedFieldEncoding_builder) Build() *OtherRepeatedFieldEncoding {
	m0 := &OtherRepeatedFieldEncoding{}
	b, x := &b0, m0
	_, _ = b, x
	return m0
}

var file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_extTypes = []protoimpl.ExtensionInfo{
	{
		ExtendedType:  (*TestFeatureResolution)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         6,
		Name:          "hybrid.goproto.proto.testeditions.other_file_global_expanded_extension_overriden",
		Tag:           "varint,6,rep,name=other_file_global_expanded_extension_overriden",
		Filename:      "internal/testprotos/testeditions/testeditions_hybrid/test_extension2.hybrid.proto",
	},
	{
		ExtendedType:  (*TestFeatureResolution)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         7,
		Name:          "hybrid.goproto.proto.testeditions.other_file_global_packed_extension",
		Tag:           "varint,7,rep,packed,name=other_file_global_packed_extension",
		Filename:      "internal/testprotos/testeditions/testeditions_hybrid/test_extension2.hybrid.proto",
	},
	{
		ExtendedType:  (*TestFeatureResolution)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         8,
		Name:          "hybrid.goproto.proto.testeditions.OtherRepeatedFieldEncoding.other_file_message_expanded_extension_overriden",
		Tag:           "varint,8,rep,name=other_file_message_expanded_extension_overriden",
		Filename:      "internal/testprotos/testeditions/testeditions_hybrid/test_extension2.hybrid.proto",
	},
	{
		ExtendedType:  (*TestFeatureResolution)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         9,
		Name:          "hybrid.goproto.proto.testeditions.OtherRepeatedFieldEncoding.other_file_message_packed_extension",
		Tag:           "varint,9,rep,packed,name=other_file_message_packed_extension",
		Filename:      "internal/testprotos/testeditions/testeditions_hybrid/test_extension2.hybrid.proto",
	},
}

// Extension fields to TestFeatureResolution.
var (
	// repeated int32 other_file_global_expanded_extension_overriden = 6;
	E_OtherFileGlobalExpandedExtensionOverriden = &file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_extTypes[0]
	// repeated int32 other_file_global_packed_extension = 7;
	E_OtherFileGlobalPackedExtension = &file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_extTypes[1]
	// repeated int32 other_file_message_expanded_extension_overriden = 8;
	E_OtherRepeatedFieldEncoding_OtherFileMessageExpandedExtensionOverriden = &file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_extTypes[2]
	// repeated int32 other_file_message_packed_extension = 9;
	E_OtherRepeatedFieldEncoding_OtherFileMessagePackedExtension = &file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_extTypes[3]
)

var File_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto protoreflect.FileDescriptor

const file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_rawDesc = "\nQinternal/testprotos/testeditions/testeditions_hybrid/test_extension2.hybrid.proto!hybrid.goproto.proto.testeditionsPinternal/testprotos/testeditions/testeditions_hybrid/test_extension.hybrid.proto!google/protobuf/go_features.proto\"\xcc\nOtherRepeatedFieldEncoding2\xa4\n/other_file_message_expanded_extension_overriden8.hybrid.goproto.proto.testeditions.TestFeatureResolution (B\xaaR*otherFileMessageExpandedExtensionOverriden2\x86\n#other_file_message_packed_extension8.hybrid.goproto.proto.testeditions.TestFeatureResolution	 (RotherFileMessagePackedExtension:\xa2\n.other_file_global_expanded_extension_overriden8.hybrid.goproto.proto.testeditions.TestFeatureResolution (B\xaaR)otherFileGlobalExpandedExtensionOverriden:\x84\n\"other_file_global_packed_extension8.hybrid.goproto.proto.testeditions.TestFeatureResolution (RotherFileGlobalPackedExtensionB[ZOgoogle.golang.org/protobuf/internal/testprotos/testeditions/testeditions_hybrid\x92\xd2>beditionsp\xe8"

var file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_goTypes = []any{
	(*OtherRepeatedFieldEncoding)(nil), // 0: hybrid.goproto.proto.testeditions.OtherRepeatedFieldEncoding
	(*TestFeatureResolution)(nil),      // 1: hybrid.goproto.proto.testeditions.TestFeatureResolution
}
var file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_depIdxs = []int32{
	1, // 0: hybrid.goproto.proto.testeditions.other_file_global_expanded_extension_overriden:extendee -> hybrid.goproto.proto.testeditions.TestFeatureResolution
	1, // 1: hybrid.goproto.proto.testeditions.other_file_global_packed_extension:extendee -> hybrid.goproto.proto.testeditions.TestFeatureResolution
	1, // 2: hybrid.goproto.proto.testeditions.OtherRepeatedFieldEncoding.other_file_message_expanded_extension_overriden:extendee -> hybrid.goproto.proto.testeditions.TestFeatureResolution
	1, // 3: hybrid.goproto.proto.testeditions.OtherRepeatedFieldEncoding.other_file_message_packed_extension:extendee -> hybrid.goproto.proto.testeditions.TestFeatureResolution
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	0, // [0:4] is the sub-list for extension extendee
	0, // [0:0] is the sub-list for field type_name
}

func init() {
	file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_init()
}
func file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_init() {
	if File_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto != nil {
		return
	}
	file_internal_testprotos_testeditions_testeditions_hybrid_test_extension_hybrid_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_rawDesc), len(file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 4,
			NumServices:   0,
		},
		GoTypes:           file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_goTypes,
		DependencyIndexes: file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_depIdxs,
		MessageInfos:      file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_msgTypes,
		ExtensionInfos:    file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_extTypes,
	}.Build()
	File_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto = out.File
	file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_goTypes = nil
	file_internal_testprotos_testeditions_testeditions_hybrid_test_extension2_hybrid_proto_depIdxs = nil
}
