blob: 228dd20153ff1127f164fe5fcd90fdc8337c4112 [file] [log] [blame]
// 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.
package reflection_test
import (
"fmt"
"math"
"testing"
testpb "google.golang.org/protobuf/internal/testprotos/testeditions"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/reflect/protoreflect"
"google.golang.org/protobuf/testing/prototest"
)
func TestOpenConcrete(t *testing.T) {
prototest.Message{}.Test(t, newTestMessageOpen(nil).ProtoReflect().Type())
}
func TestOpenReflection(t *testing.T) {
prototest.Message{}.Test(t, (*testpb.TestAllTypes)(nil).ProtoReflect().Type())
}
func TestOpenShadow_GetConcrete_SetReflection(t *testing.T) {
prototest.Message{}.Test(t, newShadow(func() (get, set protoreflect.ProtoMessage) {
m := &testpb.TestAllTypes{}
return newTestMessageOpen(m), m
}).ProtoReflect().Type())
}
func TestOpenShadow_GetReflection_SetConcrete(t *testing.T) {
prototest.Message{}.Test(t, newShadow(func() (get, set protoreflect.ProtoMessage) {
m := &testpb.TestAllTypes{}
return m, newTestMessageOpen(m)
}).ProtoReflect().Type())
}
func newTestMessageOpen(m *testpb.TestAllTypes) protoreflect.ProtoMessage {
return &testProtoMessage{
m: m,
md: m.ProtoReflect().Descriptor(),
new: func() protoreflect.Message {
return newTestMessageOpen(&testpb.TestAllTypes{}).ProtoReflect()
},
has: func(num protoreflect.FieldNumber) bool {
switch num {
case fieldSingularInt32:
return m.GetSingularInt32() != 0
case fieldSingularInt64:
return m.GetSingularInt64() != 0
case fieldSingularUint32:
return m.GetSingularUint32() != 0
case fieldSingularUint64:
return m.GetSingularUint64() != 0
case fieldSingularSint32:
return m.GetSingularSint32() != 0
case fieldSingularSint64:
return m.GetSingularSint64() != 0
case fieldSingularFixed32:
return m.GetSingularFixed32() != 0
case fieldSingularFixed64:
return m.GetSingularFixed64() != 0
case fieldSingularSfixed32:
return m.GetSingularSfixed32() != 0
case fieldSingularSfixed64:
return m.GetSingularSfixed64() != 0
case fieldSingularFloat:
return m.GetSingularFloat() != 0 || math.Signbit(float64(m.GetSingularFloat()))
case fieldSingularDouble:
return m.GetSingularDouble() != 0 || math.Signbit(m.GetSingularDouble())
case fieldSingularBool:
return m.GetSingularBool() != false
case fieldSingularString:
return m.GetSingularString() != ""
case fieldSingularBytes:
return m.SingularBytes != nil
case fieldSingularNestedEnum:
return m.GetSingularNestedEnum() != testpb.TestAllTypes_FOO
case fieldSingularForeignEnum:
return m.GetSingularForeignEnum() != testpb.ForeignEnum_FOREIGN_ZERO
case fieldSingularImportEnum:
return m.GetSingularImportEnum() != testpb.ImportEnum_IMPORT_ZERO
case fieldOptionalInt32:
return m.OptionalInt32 != nil
case fieldOptionalInt64:
return m.OptionalInt64 != nil
case fieldOptionalUint32:
return m.OptionalUint32 != nil
case fieldOptionalUint64:
return m.OptionalUint64 != nil
case fieldOptionalSint32:
return m.OptionalSint32 != nil
case fieldOptionalSint64:
return m.OptionalSint64 != nil
case fieldOptionalFixed32:
return m.OptionalFixed32 != nil
case fieldOptionalFixed64:
return m.OptionalFixed64 != nil
case fieldOptionalSfixed32:
return m.OptionalSfixed32 != nil
case fieldOptionalSfixed64:
return m.OptionalSfixed64 != nil
case fieldOptionalFloat:
return m.OptionalFloat != nil
case fieldOptionalDouble:
return m.OptionalDouble != nil
case fieldOptionalBool:
return m.OptionalBool != nil
case fieldOptionalString:
return m.OptionalString != nil
case fieldOptionalBytes:
return m.OptionalBytes != nil
case fieldOptionalGroup:
return m.Optionalgroup != nil
case fieldNotGroupLikeDelimited:
return m.NotGroupLikeDelimited != nil
case fieldOptionalNestedMessage:
return m.OptionalNestedMessage != nil
case fieldOptionalForeignMessage:
return m.OptionalForeignMessage != nil
case fieldOptionalImportMessage:
return m.OptionalImportMessage != nil
case fieldOptionalNestedEnum:
return m.OptionalNestedEnum != nil
case fieldOptionalForeignEnum:
return m.OptionalForeignEnum != nil
case fieldOptionalImportEnum:
return m.OptionalImportEnum != nil
case fieldOptionalLazyNestedMessage:
return m.OptionalLazyNestedMessage != nil
case fieldRepeatedInt32:
return len(m.GetRepeatedInt32()) > 0
case fieldRepeatedInt64:
return len(m.GetRepeatedInt64()) > 0
case fieldRepeatedUint32:
return len(m.GetRepeatedUint32()) > 0
case fieldRepeatedUint64:
return len(m.GetRepeatedUint64()) > 0
case fieldRepeatedSint32:
return len(m.GetRepeatedSint32()) > 0
case fieldRepeatedSint64:
return len(m.GetRepeatedSint64()) > 0
case fieldRepeatedFixed32:
return len(m.GetRepeatedFixed32()) > 0
case fieldRepeatedFixed64:
return len(m.GetRepeatedFixed64()) > 0
case fieldRepeatedSfixed32:
return len(m.GetRepeatedSfixed32()) > 0
case fieldRepeatedSfixed64:
return len(m.GetRepeatedSfixed64()) > 0
case fieldRepeatedFloat:
return len(m.GetRepeatedFloat()) > 0
case fieldRepeatedDouble:
return len(m.GetRepeatedDouble()) > 0
case fieldRepeatedBool:
return len(m.GetRepeatedBool()) > 0
case fieldRepeatedString:
return len(m.GetRepeatedString()) > 0
case fieldRepeatedBytes:
return len(m.GetRepeatedBytes()) > 0
case fieldRepeatedGroup:
return len(m.GetRepeatedgroup()) > 0
case fieldRepeatedNestedMessage:
return len(m.GetRepeatedNestedMessage()) > 0
case fieldRepeatedForeignMessage:
return len(m.GetRepeatedForeignMessage()) > 0
case fieldRepeatedImportMessage:
return len(m.GetRepeatedImportmessage()) > 0
case fieldRepeatedNestedEnum:
return len(m.GetRepeatedNestedEnum()) > 0
case fieldRepeatedForeignEnum:
return len(m.GetRepeatedForeignEnum()) > 0
case fieldRepeatedImportEnum:
return len(m.GetRepeatedImportenum()) > 0
case fieldMapInt32Int32:
return len(m.GetMapInt32Int32()) > 0
case fieldMapInt64Int64:
return len(m.GetMapInt64Int64()) > 0
case fieldMapUint32Uint32:
return len(m.GetMapUint32Uint32()) > 0
case fieldMapUint64Uint64:
return len(m.GetMapUint64Uint64()) > 0
case fieldMapSint32Sint32:
return len(m.GetMapSint32Sint32()) > 0
case fieldMapSint64Sint64:
return len(m.GetMapSint64Sint64()) > 0
case fieldMapFixed32Fixed32:
return len(m.GetMapFixed32Fixed32()) > 0
case fieldMapFixed64Fixed64:
return len(m.GetMapFixed64Fixed64()) > 0
case fieldMapSfixed32Sfixed32:
return len(m.GetMapSfixed32Sfixed32()) > 0
case fieldMapSfixed64Sfixed64:
return len(m.GetMapSfixed64Sfixed64()) > 0
case fieldMapInt32Float:
return len(m.GetMapInt32Float()) > 0
case fieldMapInt32Double:
return len(m.GetMapInt32Double()) > 0
case fieldMapBoolBool:
return len(m.GetMapBoolBool()) > 0
case fieldMapStringString:
return len(m.GetMapStringString()) > 0
case fieldMapStringBytes:
return len(m.GetMapStringBytes()) > 0
case fieldMapStringNestedMessage:
return len(m.GetMapStringNestedMessage()) > 0
case fieldMapStringNestedEnum:
return len(m.GetMapStringNestedEnum()) > 0
case fieldDefaultInt32:
return m.DefaultInt32 != nil
case fieldDefaultInt64:
return m.DefaultInt64 != nil
case fieldDefaultUint32:
return m.DefaultUint32 != nil
case fieldDefaultUint64:
return m.DefaultUint64 != nil
case fieldDefaultSint32:
return m.DefaultSint32 != nil
case fieldDefaultSint64:
return m.DefaultSint64 != nil
case fieldDefaultFixed32:
return m.DefaultFixed32 != nil
case fieldDefaultFixed64:
return m.DefaultFixed64 != nil
case fieldDefaultSfixed32:
return m.DefaultSfixed32 != nil
case fieldDefaultSfixed64:
return m.DefaultSfixed64 != nil
case fieldDefaultFloat:
return m.DefaultFloat != nil
case fieldDefaultDouble:
return m.DefaultDouble != nil
case fieldDefaultBool:
return m.DefaultBool != nil
case fieldDefaultString:
return m.DefaultString != nil
case fieldDefaultBytes:
return m.DefaultBytes != nil
case fieldDefaultNestedEnum:
return m.DefaultNestedEnum != nil
case fieldDefaultForeignEnum:
return m.DefaultForeignEnum != nil
case fieldOneofUint32:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofUint32)
return ok
case fieldOneofNestedMessage:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofNestedMessage)
return ok
case fieldOneofString:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofString)
return ok
case fieldOneofBytes:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofBytes)
return ok
case fieldOneofBool:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofBool)
return ok
case fieldOneofUint64:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofUint64)
return ok
case fieldOneofFloat:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofFloat)
return ok
case fieldOneofDouble:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofDouble)
return ok
case fieldOneofEnum:
_, ok := m.OneofField.(*testpb.TestAllTypes_OneofEnum)
return ok
case fieldOneofGroup:
_, ok := m.OneofField.(*testpb.TestAllTypes_Oneofgroup)
return ok
case fieldOneofOptionalUint32:
_, ok := m.OneofOptional.(*testpb.TestAllTypes_OneofOptionalUint32)
return ok
default:
panic(fmt.Sprintf("has: unknown field %d", num))
}
},
get: func(num protoreflect.FieldNumber) any {
switch num {
case fieldSingularInt32:
return m.GetSingularInt32()
case fieldSingularInt64:
return m.GetSingularInt64()
case fieldSingularUint32:
return m.GetSingularUint32()
case fieldSingularUint64:
return m.GetSingularUint64()
case fieldSingularSint32:
return m.GetSingularSint32()
case fieldSingularSint64:
return m.GetSingularSint64()
case fieldSingularFixed32:
return m.GetSingularFixed32()
case fieldSingularFixed64:
return m.GetSingularFixed64()
case fieldSingularSfixed32:
return m.GetSingularSfixed32()
case fieldSingularSfixed64:
return m.GetSingularSfixed64()
case fieldSingularFloat:
return m.GetSingularFloat()
case fieldSingularDouble:
return m.GetSingularDouble()
case fieldSingularBool:
return m.GetSingularBool()
case fieldSingularString:
return m.GetSingularString()
case fieldSingularBytes:
return m.GetSingularBytes()
case fieldSingularNestedEnum:
return m.GetSingularNestedEnum()
case fieldSingularForeignEnum:
return m.GetSingularForeignEnum()
case fieldSingularImportEnum:
return m.GetSingularImportEnum()
case fieldOptionalInt32:
return m.GetOptionalInt32()
case fieldOptionalInt64:
return m.GetOptionalInt64()
case fieldOptionalUint32:
return m.GetOptionalUint32()
case fieldOptionalUint64:
return m.GetOptionalUint64()
case fieldOptionalSint32:
return m.GetOptionalSint32()
case fieldOptionalSint64:
return m.GetOptionalSint64()
case fieldOptionalFixed32:
return m.GetOptionalFixed32()
case fieldOptionalFixed64:
return m.GetOptionalFixed64()
case fieldOptionalSfixed32:
return m.GetOptionalSfixed32()
case fieldOptionalSfixed64:
return m.GetOptionalSfixed64()
case fieldOptionalFloat:
return m.GetOptionalFloat()
case fieldOptionalDouble:
return m.GetOptionalDouble()
case fieldOptionalBool:
return m.GetOptionalBool()
case fieldOptionalString:
return m.GetOptionalString()
case fieldOptionalBytes:
return m.GetOptionalBytes()
case fieldOptionalGroup:
return m.GetOptionalgroup()
case fieldNotGroupLikeDelimited:
return m.GetNotGroupLikeDelimited()
case fieldOptionalNestedMessage:
return m.GetOptionalNestedMessage()
case fieldOptionalForeignMessage:
return m.GetOptionalForeignMessage()
case fieldOptionalImportMessage:
return m.GetOptionalImportMessage()
case fieldOptionalNestedEnum:
return m.GetOptionalNestedEnum()
case fieldOptionalForeignEnum:
return m.GetOptionalForeignEnum()
case fieldOptionalImportEnum:
return m.GetOptionalImportEnum()
case fieldOptionalLazyNestedMessage:
return m.GetOptionalLazyNestedMessage()
case fieldRepeatedInt32:
return m.GetRepeatedInt32()
case fieldRepeatedInt64:
return m.GetRepeatedInt64()
case fieldRepeatedUint32:
return m.GetRepeatedUint32()
case fieldRepeatedUint64:
return m.GetRepeatedUint64()
case fieldRepeatedSint32:
return m.GetRepeatedSint32()
case fieldRepeatedSint64:
return m.GetRepeatedSint64()
case fieldRepeatedFixed32:
return m.GetRepeatedFixed32()
case fieldRepeatedFixed64:
return m.GetRepeatedFixed64()
case fieldRepeatedSfixed32:
return m.GetRepeatedSfixed32()
case fieldRepeatedSfixed64:
return m.GetRepeatedSfixed64()
case fieldRepeatedFloat:
return m.GetRepeatedFloat()
case fieldRepeatedDouble:
return m.GetRepeatedDouble()
case fieldRepeatedBool:
return m.GetRepeatedBool()
case fieldRepeatedString:
return m.GetRepeatedString()
case fieldRepeatedBytes:
return m.GetRepeatedBytes()
case fieldRepeatedGroup:
return m.GetRepeatedgroup()
case fieldRepeatedNestedMessage:
return m.GetRepeatedNestedMessage()
case fieldRepeatedForeignMessage:
return m.GetRepeatedForeignMessage()
case fieldRepeatedImportMessage:
return m.GetRepeatedImportmessage()
case fieldRepeatedNestedEnum:
return m.GetRepeatedNestedEnum()
case fieldRepeatedForeignEnum:
return m.GetRepeatedForeignEnum()
case fieldRepeatedImportEnum:
return m.GetRepeatedImportenum()
case fieldMapInt32Int32:
return m.GetMapInt32Int32()
case fieldMapInt64Int64:
return m.GetMapInt64Int64()
case fieldMapUint32Uint32:
return m.GetMapUint32Uint32()
case fieldMapUint64Uint64:
return m.GetMapUint64Uint64()
case fieldMapSint32Sint32:
return m.GetMapSint32Sint32()
case fieldMapSint64Sint64:
return m.GetMapSint64Sint64()
case fieldMapFixed32Fixed32:
return m.GetMapFixed32Fixed32()
case fieldMapFixed64Fixed64:
return m.GetMapFixed64Fixed64()
case fieldMapSfixed32Sfixed32:
return m.GetMapSfixed32Sfixed32()
case fieldMapSfixed64Sfixed64:
return m.GetMapSfixed64Sfixed64()
case fieldMapInt32Float:
return m.GetMapInt32Float()
case fieldMapInt32Double:
return m.GetMapInt32Double()
case fieldMapBoolBool:
return m.GetMapBoolBool()
case fieldMapStringString:
return m.GetMapStringString()
case fieldMapStringBytes:
return m.GetMapStringBytes()
case fieldMapStringNestedMessage:
return m.GetMapStringNestedMessage()
case fieldMapStringNestedEnum:
return m.GetMapStringNestedEnum()
case fieldDefaultInt32:
return m.GetDefaultInt32()
case fieldDefaultInt64:
return m.GetDefaultInt64()
case fieldDefaultUint32:
return m.GetDefaultUint32()
case fieldDefaultUint64:
return m.GetDefaultUint64()
case fieldDefaultSint32:
return m.GetDefaultSint32()
case fieldDefaultSint64:
return m.GetDefaultSint64()
case fieldDefaultFixed32:
return m.GetDefaultFixed32()
case fieldDefaultFixed64:
return m.GetDefaultFixed64()
case fieldDefaultSfixed32:
return m.GetDefaultSfixed32()
case fieldDefaultSfixed64:
return m.GetDefaultSfixed64()
case fieldDefaultFloat:
return m.GetDefaultFloat()
case fieldDefaultDouble:
return m.GetDefaultDouble()
case fieldDefaultBool:
return m.GetDefaultBool()
case fieldDefaultString:
return m.GetDefaultString()
case fieldDefaultBytes:
return m.GetDefaultBytes()
case fieldDefaultNestedEnum:
return m.GetDefaultNestedEnum()
case fieldDefaultForeignEnum:
return m.GetDefaultForeignEnum()
case fieldOneofUint32:
return m.GetOneofUint32()
case fieldOneofNestedMessage:
return m.GetOneofNestedMessage()
case fieldOneofString:
return m.GetOneofString()
case fieldOneofBytes:
return m.GetOneofBytes()
case fieldOneofBool:
return m.GetOneofBool()
case fieldOneofUint64:
return m.GetOneofUint64()
case fieldOneofFloat:
return m.GetOneofFloat()
case fieldOneofDouble:
return m.GetOneofDouble()
case fieldOneofEnum:
return protoreflect.EnumNumber(m.GetOneofEnum())
case fieldOneofGroup:
return m.GetOneofgroup()
case fieldOneofOptionalUint32:
return m.GetOneofOptionalUint32()
default:
panic(fmt.Sprintf("get: unknown field %d", num))
}
},
set: func(num protoreflect.FieldNumber, v any) {
switch num {
case fieldSingularInt32:
m.SingularInt32 = v.(int32)
case fieldSingularInt64:
m.SingularInt64 = v.(int64)
case fieldSingularUint32:
m.SingularUint32 = v.(uint32)
case fieldSingularUint64:
m.SingularUint64 = v.(uint64)
case fieldSingularSint32:
m.SingularSint32 = v.(int32)
case fieldSingularSint64:
m.SingularSint64 = v.(int64)
case fieldSingularFixed32:
m.SingularFixed32 = v.(uint32)
case fieldSingularFixed64:
m.SingularFixed64 = v.(uint64)
case fieldSingularSfixed32:
m.SingularSfixed32 = v.(int32)
case fieldSingularSfixed64:
m.SingularSfixed64 = v.(int64)
case fieldSingularFloat:
m.SingularFloat = v.(float32)
case fieldSingularDouble:
m.SingularDouble = v.(float64)
case fieldSingularBool:
m.SingularBool = v.(bool)
case fieldSingularString:
m.SingularString = v.(string)
case fieldSingularBytes:
m.SingularBytes = v.([]byte)
case fieldSingularNestedEnum:
m.SingularNestedEnum = testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))
case fieldSingularForeignEnum:
m.SingularForeignEnum = testpb.ForeignEnum(v.(protoreflect.EnumNumber))
case fieldSingularImportEnum:
m.SingularImportEnum = testpb.ImportEnum(v.(protoreflect.EnumNumber))
case fieldOptionalInt32:
m.OptionalInt32 = proto.Int32(v.(int32))
case fieldOptionalInt64:
m.OptionalInt64 = proto.Int64(v.(int64))
case fieldOptionalUint32:
m.OptionalUint32 = proto.Uint32(v.(uint32))
case fieldOptionalUint64:
m.OptionalUint64 = proto.Uint64(v.(uint64))
case fieldOptionalSint32:
m.OptionalSint32 = proto.Int32(v.(int32))
case fieldOptionalSint64:
m.OptionalSint64 = proto.Int64(v.(int64))
case fieldOptionalFixed32:
m.OptionalFixed32 = proto.Uint32(v.(uint32))
case fieldOptionalFixed64:
m.OptionalFixed64 = proto.Uint64(v.(uint64))
case fieldOptionalSfixed32:
m.OptionalSfixed32 = proto.Int32(v.(int32))
case fieldOptionalSfixed64:
m.OptionalSfixed64 = proto.Int64(v.(int64))
case fieldOptionalFloat:
m.OptionalFloat = proto.Float32(v.(float32))
case fieldOptionalDouble:
m.OptionalDouble = proto.Float64(v.(float64))
case fieldOptionalBool:
m.OptionalBool = proto.Bool(v.(bool))
case fieldOptionalString:
m.OptionalString = proto.String(v.(string))
case fieldOptionalBytes:
if v.([]byte) == nil {
v = []byte{}
}
m.OptionalBytes = v.([]byte)
case fieldNotGroupLikeDelimited:
m.NotGroupLikeDelimited = v.(*testpb.TestAllTypes_OptionalGroup)
case fieldOptionalGroup:
m.Optionalgroup = v.(*testpb.TestAllTypes_OptionalGroup)
case fieldOptionalNestedMessage:
m.OptionalNestedMessage = v.(*testpb.TestAllTypes_NestedMessage)
case fieldOptionalForeignMessage:
m.OptionalForeignMessage = v.(*testpb.ForeignMessage)
case fieldOptionalImportMessage:
m.OptionalImportMessage = v.(*testpb.ImportMessage)
case fieldOptionalNestedEnum:
m.OptionalNestedEnum = testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber)).Enum()
case fieldOptionalForeignEnum:
m.OptionalForeignEnum = testpb.ForeignEnum(v.(protoreflect.EnumNumber)).Enum()
case fieldOptionalImportEnum:
m.OptionalImportEnum = testpb.ImportEnum(v.(protoreflect.EnumNumber)).Enum()
case fieldOptionalLazyNestedMessage:
m.OptionalLazyNestedMessage = v.(*testpb.TestAllTypes_NestedMessage)
case fieldRepeatedInt32:
m.RepeatedInt32 = v.([]int32)
case fieldRepeatedInt64:
m.RepeatedInt64 = v.([]int64)
case fieldRepeatedUint32:
m.RepeatedUint32 = v.([]uint32)
case fieldRepeatedUint64:
m.RepeatedUint64 = v.([]uint64)
case fieldRepeatedSint32:
m.RepeatedSint32 = v.([]int32)
case fieldRepeatedSint64:
m.RepeatedSint64 = v.([]int64)
case fieldRepeatedFixed32:
m.RepeatedFixed32 = v.([]uint32)
case fieldRepeatedFixed64:
m.RepeatedFixed64 = v.([]uint64)
case fieldRepeatedSfixed32:
m.RepeatedSfixed32 = v.([]int32)
case fieldRepeatedSfixed64:
m.RepeatedSfixed64 = v.([]int64)
case fieldRepeatedFloat:
m.RepeatedFloat = v.([]float32)
case fieldRepeatedDouble:
m.RepeatedDouble = v.([]float64)
case fieldRepeatedBool:
m.RepeatedBool = v.([]bool)
case fieldRepeatedString:
m.RepeatedString = v.([]string)
case fieldRepeatedBytes:
m.RepeatedBytes = v.([][]byte)
case fieldRepeatedGroup:
m.Repeatedgroup = v.([]*testpb.TestAllTypes_RepeatedGroup)
case fieldRepeatedNestedMessage:
m.RepeatedNestedMessage = v.([]*testpb.TestAllTypes_NestedMessage)
case fieldRepeatedForeignMessage:
m.RepeatedForeignMessage = v.([]*testpb.ForeignMessage)
case fieldRepeatedImportMessage:
m.RepeatedImportmessage = v.([]*testpb.ImportMessage)
case fieldRepeatedNestedEnum:
m.RepeatedNestedEnum = v.([]testpb.TestAllTypes_NestedEnum)
case fieldRepeatedForeignEnum:
m.RepeatedForeignEnum = v.([]testpb.ForeignEnum)
case fieldRepeatedImportEnum:
m.RepeatedImportenum = v.([]testpb.ImportEnum)
case fieldMapInt32Int32:
m.MapInt32Int32 = v.(map[int32]int32)
case fieldMapInt64Int64:
m.MapInt64Int64 = v.(map[int64]int64)
case fieldMapUint32Uint32:
m.MapUint32Uint32 = v.(map[uint32]uint32)
case fieldMapUint64Uint64:
m.MapUint64Uint64 = v.(map[uint64]uint64)
case fieldMapSint32Sint32:
m.MapSint32Sint32 = v.(map[int32]int32)
case fieldMapSint64Sint64:
m.MapSint64Sint64 = v.(map[int64]int64)
case fieldMapFixed32Fixed32:
m.MapFixed32Fixed32 = v.(map[uint32]uint32)
case fieldMapFixed64Fixed64:
m.MapFixed64Fixed64 = v.(map[uint64]uint64)
case fieldMapSfixed32Sfixed32:
m.MapSfixed32Sfixed32 = v.(map[int32]int32)
case fieldMapSfixed64Sfixed64:
m.MapSfixed64Sfixed64 = v.(map[int64]int64)
case fieldMapInt32Float:
m.MapInt32Float = v.(map[int32]float32)
case fieldMapInt32Double:
m.MapInt32Double = v.(map[int32]float64)
case fieldMapBoolBool:
m.MapBoolBool = v.(map[bool]bool)
case fieldMapStringString:
m.MapStringString = v.(map[string]string)
case fieldMapStringBytes:
m.MapStringBytes = v.(map[string][]byte)
case fieldMapStringNestedMessage:
m.MapStringNestedMessage = v.(map[string]*testpb.TestAllTypes_NestedMessage)
case fieldMapStringNestedEnum:
m.MapStringNestedEnum = v.(map[string]testpb.TestAllTypes_NestedEnum)
case fieldDefaultInt32:
m.DefaultInt32 = proto.Int32(v.(int32))
case fieldDefaultInt64:
m.DefaultInt64 = proto.Int64(v.(int64))
case fieldDefaultUint32:
m.DefaultUint32 = proto.Uint32(v.(uint32))
case fieldDefaultUint64:
m.DefaultUint64 = proto.Uint64(v.(uint64))
case fieldDefaultSint32:
m.DefaultSint32 = proto.Int32(v.(int32))
case fieldDefaultSint64:
m.DefaultSint64 = proto.Int64(v.(int64))
case fieldDefaultFixed32:
m.DefaultFixed32 = proto.Uint32(v.(uint32))
case fieldDefaultFixed64:
m.DefaultFixed64 = proto.Uint64(v.(uint64))
case fieldDefaultSfixed32:
m.DefaultSfixed32 = proto.Int32(v.(int32))
case fieldDefaultSfixed64:
m.DefaultSfixed64 = proto.Int64(v.(int64))
case fieldDefaultFloat:
m.DefaultFloat = proto.Float32(v.(float32))
case fieldDefaultDouble:
m.DefaultDouble = proto.Float64(v.(float64))
case fieldDefaultBool:
m.DefaultBool = proto.Bool(v.(bool))
case fieldDefaultString:
m.DefaultString = proto.String(v.(string))
case fieldDefaultBytes:
if v.([]byte) == nil {
v = []byte{}
}
m.DefaultBytes = v.([]byte)
case fieldDefaultNestedEnum:
m.DefaultNestedEnum = testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber)).Enum()
case fieldDefaultForeignEnum:
m.DefaultForeignEnum = testpb.ForeignEnum(v.(protoreflect.EnumNumber)).Enum()
case fieldOneofUint32:
m.OneofField = &testpb.TestAllTypes_OneofUint32{v.(uint32)}
case fieldOneofNestedMessage:
m.OneofField = &testpb.TestAllTypes_OneofNestedMessage{v.(*testpb.TestAllTypes_NestedMessage)}
case fieldOneofString:
m.OneofField = &testpb.TestAllTypes_OneofString{v.(string)}
case fieldOneofBytes:
m.OneofField = &testpb.TestAllTypes_OneofBytes{v.([]byte)}
case fieldOneofBool:
m.OneofField = &testpb.TestAllTypes_OneofBool{v.(bool)}
case fieldOneofUint64:
m.OneofField = &testpb.TestAllTypes_OneofUint64{v.(uint64)}
case fieldOneofFloat:
m.OneofField = &testpb.TestAllTypes_OneofFloat{v.(float32)}
case fieldOneofDouble:
m.OneofField = &testpb.TestAllTypes_OneofDouble{v.(float64)}
case fieldOneofEnum:
m.OneofField = &testpb.TestAllTypes_OneofEnum{testpb.TestAllTypes_NestedEnum(v.(protoreflect.EnumNumber))}
case fieldOneofGroup:
m.OneofField = &testpb.TestAllTypes_Oneofgroup{v.(*testpb.TestAllTypes_OneofGroup)}
case fieldOneofOptionalUint32:
m.OneofOptional = &testpb.TestAllTypes_OneofOptionalUint32{v.(uint32)}
default:
panic(fmt.Sprintf("set: unknown field %d", num))
}
},
clear: func(num protoreflect.FieldNumber) {
switch num {
case fieldSingularInt32:
m.SingularInt32 = 0
case fieldSingularInt64:
m.SingularInt64 = 0
case fieldSingularUint32:
m.SingularUint32 = 0
case fieldSingularUint64:
m.SingularUint64 = 0
case fieldSingularSint32:
m.SingularSint32 = 0
case fieldSingularSint64:
m.SingularSint64 = 0
case fieldSingularFixed32:
m.SingularFixed32 = 0
case fieldSingularFixed64:
m.SingularFixed64 = 0
case fieldSingularSfixed32:
m.SingularSfixed32 = 0
case fieldSingularSfixed64:
m.SingularSfixed64 = 0
case fieldSingularFloat:
m.SingularFloat = 0
case fieldSingularDouble:
m.SingularDouble = 0
case fieldSingularBool:
m.SingularBool = false
case fieldSingularString:
m.SingularString = ""
case fieldSingularBytes:
m.SingularBytes = nil
case fieldSingularNestedEnum:
m.SingularNestedEnum = testpb.TestAllTypes_FOO
case fieldSingularForeignEnum:
m.SingularForeignEnum = testpb.ForeignEnum_FOREIGN_ZERO
case fieldSingularImportEnum:
m.SingularImportEnum = testpb.ImportEnum_IMPORT_ZERO
case fieldOptionalInt32:
m.OptionalInt32 = nil
case fieldOptionalInt64:
m.OptionalInt64 = nil
case fieldOptionalUint32:
m.OptionalUint32 = nil
case fieldOptionalUint64:
m.OptionalUint64 = nil
case fieldOptionalSint32:
m.OptionalSint32 = nil
case fieldOptionalSint64:
m.OptionalSint64 = nil
case fieldOptionalFixed32:
m.OptionalFixed32 = nil
case fieldOptionalFixed64:
m.OptionalFixed64 = nil
case fieldOptionalSfixed32:
m.OptionalSfixed32 = nil
case fieldOptionalSfixed64:
m.OptionalSfixed64 = nil
case fieldOptionalFloat:
m.OptionalFloat = nil
case fieldOptionalDouble:
m.OptionalDouble = nil
case fieldOptionalBool:
m.OptionalBool = nil
case fieldOptionalString:
m.OptionalString = nil
case fieldOptionalBytes:
m.OptionalBytes = nil
case fieldOptionalGroup:
m.Optionalgroup = nil
case fieldNotGroupLikeDelimited:
m.NotGroupLikeDelimited = nil
case fieldOptionalNestedMessage:
m.OptionalNestedMessage = nil
case fieldOptionalForeignMessage:
m.OptionalForeignMessage = nil
case fieldOptionalImportMessage:
m.OptionalImportMessage = nil
case fieldOptionalNestedEnum:
m.OptionalNestedEnum = nil
case fieldOptionalForeignEnum:
m.OptionalForeignEnum = nil
case fieldOptionalImportEnum:
m.OptionalImportEnum = nil
case fieldOptionalLazyNestedMessage:
m.OptionalLazyNestedMessage = nil
case fieldRepeatedInt32:
m.RepeatedInt32 = nil
case fieldRepeatedInt64:
m.RepeatedInt64 = nil
case fieldRepeatedUint32:
m.RepeatedUint32 = nil
case fieldRepeatedUint64:
m.RepeatedUint64 = nil
case fieldRepeatedSint32:
m.RepeatedSint32 = nil
case fieldRepeatedSint64:
m.RepeatedSint64 = nil
case fieldRepeatedFixed32:
m.RepeatedFixed32 = nil
case fieldRepeatedFixed64:
m.RepeatedFixed64 = nil
case fieldRepeatedSfixed32:
m.RepeatedSfixed32 = nil
case fieldRepeatedSfixed64:
m.RepeatedSfixed64 = nil
case fieldRepeatedFloat:
m.RepeatedFloat = nil
case fieldRepeatedDouble:
m.RepeatedDouble = nil
case fieldRepeatedBool:
m.RepeatedBool = nil
case fieldRepeatedString:
m.RepeatedString = nil
case fieldRepeatedBytes:
m.RepeatedBytes = nil
case fieldRepeatedGroup:
m.Repeatedgroup = nil
case fieldRepeatedNestedMessage:
m.RepeatedNestedMessage = nil
case fieldRepeatedForeignMessage:
m.RepeatedForeignMessage = nil
case fieldRepeatedImportMessage:
m.RepeatedImportmessage = nil
case fieldRepeatedNestedEnum:
m.RepeatedNestedEnum = nil
case fieldRepeatedForeignEnum:
m.RepeatedForeignEnum = nil
case fieldRepeatedImportEnum:
m.RepeatedImportenum = nil
case fieldMapInt32Int32:
m.MapInt32Int32 = nil
case fieldMapInt64Int64:
m.MapInt64Int64 = nil
case fieldMapUint32Uint32:
m.MapUint32Uint32 = nil
case fieldMapUint64Uint64:
m.MapUint64Uint64 = nil
case fieldMapSint32Sint32:
m.MapSint32Sint32 = nil
case fieldMapSint64Sint64:
m.MapSint64Sint64 = nil
case fieldMapFixed32Fixed32:
m.MapFixed32Fixed32 = nil
case fieldMapFixed64Fixed64:
m.MapFixed64Fixed64 = nil
case fieldMapSfixed32Sfixed32:
m.MapSfixed32Sfixed32 = nil
case fieldMapSfixed64Sfixed64:
m.MapSfixed64Sfixed64 = nil
case fieldMapInt32Float:
m.MapInt32Float = nil
case fieldMapInt32Double:
m.MapInt32Double = nil
case fieldMapBoolBool:
m.MapBoolBool = nil
case fieldMapStringString:
m.MapStringString = nil
case fieldMapStringBytes:
m.MapStringBytes = nil
case fieldMapStringNestedMessage:
m.MapStringNestedMessage = nil
case fieldMapStringNestedEnum:
m.MapStringNestedEnum = nil
case fieldDefaultInt32:
m.DefaultInt32 = nil
case fieldDefaultInt64:
m.DefaultInt64 = nil
case fieldDefaultUint32:
m.DefaultUint32 = nil
case fieldDefaultUint64:
m.DefaultUint64 = nil
case fieldDefaultSint32:
m.DefaultSint32 = nil
case fieldDefaultSint64:
m.DefaultSint64 = nil
case fieldDefaultFixed32:
m.DefaultFixed32 = nil
case fieldDefaultFixed64:
m.DefaultFixed64 = nil
case fieldDefaultSfixed32:
m.DefaultSfixed32 = nil
case fieldDefaultSfixed64:
m.DefaultSfixed64 = nil
case fieldDefaultFloat:
m.DefaultFloat = nil
case fieldDefaultDouble:
m.DefaultDouble = nil
case fieldDefaultBool:
m.DefaultBool = nil
case fieldDefaultString:
m.DefaultString = nil
case fieldDefaultBytes:
m.DefaultBytes = nil
case fieldDefaultNestedEnum:
m.DefaultNestedEnum = nil
case fieldDefaultForeignEnum:
m.DefaultForeignEnum = nil
case fieldOneofUint32:
m.OneofField = nil
case fieldOneofNestedMessage:
m.OneofField = nil
case fieldOneofString:
m.OneofField = nil
case fieldOneofBytes:
m.OneofField = nil
case fieldOneofBool:
m.OneofField = nil
case fieldOneofUint64:
m.OneofField = nil
case fieldOneofFloat:
m.OneofField = nil
case fieldOneofDouble:
m.OneofField = nil
case fieldOneofEnum:
m.OneofField = nil
case fieldOneofGroup:
m.OneofField = nil
case fieldOneofOptionalUint32:
m.OneofOptional = nil
default:
panic(fmt.Sprintf("clear: unknown field %d", num))
}
},
}
}