@@ -42,6 +42,39 @@ func (v V2JsonProtobufAnyTypeDescriptor) FullName() protoreflect.FullName {
4242}
4343
4444func (v V2JsonProtobufAnyTypeDescriptor ) Fields () protoreflect.FieldDescriptors {
45+ return V2JsonProtobufAnyTypeFields {v .MessageDescriptor .Fields ()}
46+ }
47+
48+ type V2JsonProtobufAnyTypeFields struct {
49+ protoreflect.FieldDescriptors
50+ }
51+
52+ func (v V2JsonProtobufAnyTypeFields ) Len () int {
53+ panic ("implement me" )
54+ }
55+
56+ func (v V2JsonProtobufAnyTypeFields ) Get (i int ) protoreflect.FieldDescriptor {
57+ panic ("implement me" )
58+ }
59+
60+ func (v V2JsonProtobufAnyTypeFields ) ByName (s protoreflect.Name ) protoreflect.FieldDescriptor {
61+ panic ("implement me" )
62+ }
63+
64+ func (v V2JsonProtobufAnyTypeFields ) ByJSONName (s string ) protoreflect.FieldDescriptor {
65+ switch s {
66+ case "type" :
67+ return & V2JsonProtobufFollowerFieldDescriptor {v .FieldDescriptors .ByName ("type_url" )}
68+ default :
69+ return & V2JsonProtobufAnyValueField {v .FieldDescriptors .ByName ("value" ), "value" }
70+ }
71+ }
72+
73+ func (v V2JsonProtobufAnyTypeFields ) ByTextName (s string ) protoreflect.FieldDescriptor {
74+ panic ("implement me" )
75+ }
76+
77+ func (v V2JsonProtobufAnyTypeFields ) ByNumber (n protoreflect.FieldNumber ) protoreflect.FieldDescriptor {
4578 panic ("implement me" )
4679}
4780
@@ -123,7 +156,7 @@ func (v V2JsonProtobufListFollower) Set(i int, value protoreflect.Value) {
123156}
124157
125158func (v V2JsonProtobufListFollower ) Append (value protoreflect.Value ) {
126- panic ( "implement me" )
159+ v . List . Append ( value )
127160}
128161
129162func (v V2JsonProtobufListFollower ) AppendMutable () protoreflect.Value {
@@ -135,7 +168,8 @@ func (v V2JsonProtobufListFollower) Truncate(i int) {
135168}
136169
137170func (v V2JsonProtobufListFollower ) NewElement () protoreflect.Value {
138- panic ("implement me" )
171+ newelement := v .List .NewElement ()
172+ return protoreflect .ValueOfMessage (& V2JsonProtobufFollower {newelement .Message ()})
139173}
140174
141175func (v V2JsonProtobufListFollower ) IsValid () bool {
@@ -158,7 +192,7 @@ func (v V2JsonProtobufMapFollower) Range(f func(protoreflect.MapKey, protoreflec
158192}
159193
160194func (v V2JsonProtobufMapFollower ) Has (key protoreflect.MapKey ) bool {
161- panic ( "implement me" )
195+ return v . Map . Has ( key )
162196}
163197
164198func (v V2JsonProtobufMapFollower ) Clear (key protoreflect.MapKey ) {
@@ -170,15 +204,16 @@ func (v V2JsonProtobufMapFollower) Get(key protoreflect.MapKey) protoreflect.Val
170204}
171205
172206func (v V2JsonProtobufMapFollower ) Set (key protoreflect.MapKey , value protoreflect.Value ) {
173- panic ( "implement me" )
207+ v . Map . Set ( key , value )
174208}
175209
176210func (v V2JsonProtobufMapFollower ) Mutable (key protoreflect.MapKey ) protoreflect.Value {
177211 panic ("implement me" )
178212}
179213
180214func (v V2JsonProtobufMapFollower ) NewValue () protoreflect.Value {
181- panic ("implement me" )
215+ newelement := v .Map .NewValue ()
216+ return protoreflect .ValueOfMessage (& V2JsonProtobufFollower {newelement .Message ()})
182217}
183218
184219func (v V2JsonProtobufMapFollower ) IsValid () bool {
@@ -194,7 +229,7 @@ func (v *V2JsonProtobufFollower) New() protoreflect.Message {
194229}
195230
196231func (v * V2JsonProtobufFollower ) Interface () protoreflect.ProtoMessage {
197- panic ( "implement me" )
232+ return v . Message . Interface ( )
198233}
199234
200235func (v * V2JsonProtobufFollower ) Range (f func (protoreflect.FieldDescriptor , protoreflect.Value ) bool ) {
@@ -273,19 +308,71 @@ func (v *V2JsonProtobufFollower) Has(descriptor protoreflect.FieldDescriptor) bo
273308}
274309
275310func (v * V2JsonProtobufFollower ) Clear (descriptor protoreflect.FieldDescriptor ) {
276- panic ( "implement me" )
311+ v . Message . Clear ( descriptor )
277312}
278313
279314func (v * V2JsonProtobufFollower ) Set (descriptor protoreflect.FieldDescriptor , value protoreflect.Value ) {
280- panic ("implement me" )
315+ switch descriptor .(type ) {
316+ case V2JsonProtobufFollowerFieldDescriptor :
317+ v .Message .Set (descriptor .(V2JsonProtobufFollowerFieldDescriptor ).FieldDescriptor , value )
318+ case * V2JsonProtobufFollowerFieldDescriptor :
319+ v .Message .Set (descriptor .(* V2JsonProtobufFollowerFieldDescriptor ).FieldDescriptor , value )
320+ case * V2JsonProtobufAnyValueField :
321+ protodata := value .Message ()
322+ bytesw , err := proto.MarshalOptions {AllowPartial : true }.Marshal (& V2JsonProtobufAnyValueFieldReturn {protodata })
323+ if err != nil {
324+ panic (err )
325+ }
326+ v .Message .Set (descriptor .(* V2JsonProtobufAnyValueField ).FieldDescriptor , protoreflect .ValueOfBytes (bytesw ))
327+ default :
328+ v .Message .Set (descriptor , value )
329+ }
330+
331+ }
332+
333+ type V2JsonProtobufAnyValueFieldReturn struct {
334+ protoreflect.Message
335+ }
336+
337+ func (v * V2JsonProtobufAnyValueFieldReturn ) ProtoReflect () protoreflect.Message {
338+ if bufFollow , ok := v .Message .(* V2JsonProtobufFollower ); ok {
339+ return bufFollow .Message
340+ }
341+ return v .Message
281342}
282343
283344func (v * V2JsonProtobufFollower ) Mutable (descriptor protoreflect.FieldDescriptor ) protoreflect.Value {
284- panic ("implement me" )
345+ value := v .Message .Mutable (descriptor .(V2JsonProtobufFollowerFieldDescriptor ).FieldDescriptor )
346+ if descriptor .IsList () {
347+ return protoreflect .ValueOfList (& V2JsonProtobufListFollower {value .List ()})
348+ }
349+ if descriptor .IsMap () {
350+ return protoreflect .ValueOfMap (& V2JsonProtobufMapFollower {value .Map (), descriptor })
351+ }
352+ if descriptor .Kind () == protoreflect .MessageKind {
353+ return protoreflect .ValueOfMessage (& V2JsonProtobufFollower {value .Message ()})
354+ }
355+ return value
285356}
286357
287358func (v * V2JsonProtobufFollower ) NewField (descriptor protoreflect.FieldDescriptor ) protoreflect.Value {
288- panic ("implement me" )
359+
360+ if _ , ok := descriptor .(* V2JsonProtobufAnyValueField ); ok {
361+
362+ url := v .Message .Get (v .Message .Descriptor ().Fields ().ByName ("type_url" )).String ()
363+
364+ v2type := serial .V2TypeFromURL (url )
365+ instance , err := serial .GetInstance (v2type )
366+ if err != nil {
367+ panic (err )
368+ }
369+ newvalue := protoreflect .ValueOfMessage (& V2JsonProtobufFollower {instance .(proto.Message ).ProtoReflect ()})
370+ return newvalue
371+ }
372+
373+ value := v .Message .NewField (descriptor .(V2JsonProtobufFollowerFieldDescriptor ).FieldDescriptor )
374+ newvalue := protoreflect .ValueOfMessage (& V2JsonProtobufFollower {value .Message ()})
375+ return newvalue
289376}
290377
291378func (v * V2JsonProtobufFollower ) WhichOneof (descriptor protoreflect.OneofDescriptor ) protoreflect.FieldDescriptor {
@@ -297,11 +384,11 @@ func (v *V2JsonProtobufFollower) GetUnknown() protoreflect.RawFields {
297384}
298385
299386func (v * V2JsonProtobufFollower ) SetUnknown (fields protoreflect.RawFields ) {
300- panic ( "implement me" )
387+ v . Message . SetUnknown ( fields )
301388}
302389
303390func (v * V2JsonProtobufFollower ) IsValid () bool {
304- panic ( "implement me" )
391+ return v . Message . IsValid ( )
305392}
306393
307394func (v * V2JsonProtobufFollower ) ProtoReflect () protoreflect.Message {
@@ -315,9 +402,29 @@ func (v *V2JsonProtobufFollower) Descriptor() protoreflect.MessageDescriptor {
315402 desc := & V2JsonProtobufAnyTypeDescriptor {(& anypb.Any {}).ProtoReflect ().Descriptor ()}
316403 return desc
317404 }
318- return v .Message .Descriptor ()
405+ return & V2JsonProtobufFollowerDescriptor { v .Message .Descriptor ()}
319406}
320407
321408func (v * V2JsonProtobufFollower ) Get (fd protoreflect.FieldDescriptor ) protoreflect.Value {
322409 panic ("implement me" )
323410}
411+
412+ type V2JsonProtobufFollowerDescriptor struct {
413+ protoreflect.MessageDescriptor
414+ }
415+
416+ func (v * V2JsonProtobufFollowerDescriptor ) Fields () protoreflect.FieldDescriptors {
417+ return & V2JsonProtobufFollowerFields {v .MessageDescriptor .Fields ()}
418+ }
419+
420+ type V2JsonProtobufFollowerFields struct {
421+ protoreflect.FieldDescriptors
422+ }
423+
424+ func (v * V2JsonProtobufFollowerFields ) ByJSONName (s string ) protoreflect.FieldDescriptor {
425+ return V2JsonProtobufFollowerFieldDescriptor {v .FieldDescriptors .ByJSONName (s )}
426+ }
427+
428+ func (v * V2JsonProtobufFollowerFields ) ByTextName (s string ) protoreflect.FieldDescriptor {
429+ return V2JsonProtobufFollowerFieldDescriptor {v .FieldDescriptors .ByTextName (s )}
430+ }
0 commit comments