MCPcopy Index your code
hub / github.com/vmihailenco/msgpack / decodeStruct

Method decodeStruct

decode_map.go:327–356  ·  view source on GitHub ↗
(v reflect.Value, n int)

Source from the content-addressed store, hash-verified

325}
326
327func (d *Decoder) decodeStruct(v reflect.Value, n int) error {
328 if n == -1 {
329 v.Set(reflect.Zero(v.Type()))
330 return nil
331 }
332
333 fields := structs.Fields(v.Type(), d.structTag)
334 for i := 0; i < n; i++ {
335 name, err := d.decodeStringTemp()
336 if err != nil {
337 return err
338 }
339
340 if f := fields.Map[name]; f != nil {
341 if err := f.DecodeValue(d, v); err != nil {
342 return err
343 }
344 continue
345 }
346
347 if d.flags&disallowUnknownFieldsFlag != 0 {
348 return fmt.Errorf("msgpack: unknown field %q", name)
349 }
350 if err := d.Skip(); err != nil {
351 return err
352 }
353 }
354
355 return nil
356}

Callers 1

decodeStructValueFunction · 0.80

Calls 5

decodeStringTempMethod · 0.95
SkipMethod · 0.95
SetMethod · 0.80
FieldsMethod · 0.80
DecodeValueMethod · 0.45

Tested by

no test coverage detected