You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: test3editions.pb.go
    path of file: ./repos/protobuf-go/internal/testprotos/editionsfuzztest
    
    the code of the file until where you have to start completion: // 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/editionsfuzztest/test3editions.proto

package editionsfuzztest

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

type ForeignEnumProto3Editions int32

const (
	ForeignEnumProto3Editions_FOREIGN_PROTO3_EDITIONS_ZERO ForeignEnumProto3Editions = 0
	ForeignEnumProto3Editions_FOREIGN_PROTO3_EDITIONS_FOO  ForeignEnumProto3Editions = 4
	ForeignEnumProto3Editions_FOREIGN_PROTO3_EDITIONS_BAR  ForeignEnumProto3Ed
    
func file_internal_testprotos_editionsfuzztest_test3editions_proto_init() {
	if File_internal_testprotos_editionsfuzztest_test3editions_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_internal_testprotos_editionsfuzztest_test3editions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TestAllTypesProto3Editions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_internal_testprotos_editionsfuzztest_test3editions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ForeignMessageProto3Editions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_internal_testprotos_editionsfuzztest_test3editions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TestAllTypesProto3Editions_NestedMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_internal_testprotos_editionsfuzztest_test3editions_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*TestAllTypesProto3Editions_OneofUint32)(nil),
		(*TestAllTypesProto3Editions_OneofNestedMessage)(nil),
		(*TestAllTypesProto3Editions_OneofString)(nil),
		(*TestAllTypesProto3Editions_OneofBytes)(nil),
		(*TestAllTypesProto3Editions_OneofBool)(nil),
		(*TestAllTypesProto3Editions_OneofUint64)(nil),
		(*TestAllTypesProto3Editions_OneofFloat)(nil),
		(*TestAllTypesProto3Editions_OneofDouble)(nil),
		(*TestAllTypesProto3Editions_OneofEnum)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_internal_testprotos_editionsfuzztest_test3editions_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   20,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_internal_testprotos_editionsfuzztest_test3editions_proto_goTypes,
		DependencyIndexes: file_internal_testprotos_editionsfuzztest_test3editions_proto_depIdxs,
		EnumInfos:         file_internal_testprotos_editionsfuzztest_test3editions_proto_enumTypes,
		MessageInfos:      file_internal_testprotos_editionsfuzztest_test3editions_proto_msgTypes,
	}.Build()
	File_internal_testprotos_editionsfuzztest_test3editions_proto = out.File
	file_internal_testprotos_editionsfuzztest_test3editions_proto_rawDesc = nil
	file_internal_testprotos_editionsfuzztest_test3editions_proto_goTypes = nil
	file_internal_testprotos_editionsfuzztest_test3editions_proto_depIdxs = nil
}