| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package v2jsonpb
- import "google.golang.org/protobuf/reflect/protoreflect"
- type V2JsonProtobufMapFollower struct {
- protoreflect.Map
- ValueKind protoreflect.FieldDescriptor
- }
- func (v V2JsonProtobufMapFollower) Len() int {
- panic("implement me")
- }
- func (v V2JsonProtobufMapFollower) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) {
- v.Map.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool {
- return followMapValue(v.ValueKind, value, key, f)
- })
- }
- func (v V2JsonProtobufMapFollower) Has(key protoreflect.MapKey) bool {
- return v.Map.Has(key)
- }
- func (v V2JsonProtobufMapFollower) Clear(key protoreflect.MapKey) {
- panic("implement me")
- }
- func (v V2JsonProtobufMapFollower) Get(key protoreflect.MapKey) protoreflect.Value {
- panic("implement me")
- }
- func (v V2JsonProtobufMapFollower) Set(key protoreflect.MapKey, value protoreflect.Value) {
- v.Map.Set(key, value)
- }
- func (v V2JsonProtobufMapFollower) Mutable(key protoreflect.MapKey) protoreflect.Value {
- panic("implement me")
- }
- func (v V2JsonProtobufMapFollower) NewValue() protoreflect.Value {
- newelement := v.Map.NewValue()
- return protoreflect.ValueOfMessage(&V2JsonProtobufFollower{newelement.Message()})
- }
- func (v V2JsonProtobufMapFollower) IsValid() bool {
- panic("implement me")
- }
- func followMapValue(descriptor protoreflect.FieldDescriptor, value protoreflect.Value, mapkey protoreflect.MapKey, f func(protoreflect.MapKey, protoreflect.Value) bool) bool {
- if descriptor.Kind() == protoreflect.MessageKind {
- if descriptor.IsList() {
- value2 := protoreflect.ValueOfList(V2JsonProtobufListFollower{value.List()})
- return f(mapkey, value2)
- }
- if descriptor.IsMap() {
- value2 := protoreflect.ValueOfMap(V2JsonProtobufMapFollower{value.Map(), descriptor.MapValue()})
- return f(mapkey, value2)
- }
- value2 := protoreflect.ValueOfMessage(&V2JsonProtobufFollower{value.Message()})
- return f(mapkey, value2)
- }
- return f(mapkey, value)
- }
|