(q *queryResult)
| 40 | } |
| 41 | |
| 42 | func (d *Decoder) query(q *queryResult) error { |
| 43 | q.nextKey() |
| 44 | if q.key == "" { |
| 45 | v, err := d.decodeInterfaceCond() |
| 46 | if err != nil { |
| 47 | return err |
| 48 | } |
| 49 | q.values = append(q.values, v) |
| 50 | return nil |
| 51 | } |
| 52 | |
| 53 | code, err := d.PeekCode() |
| 54 | if err != nil { |
| 55 | return err |
| 56 | } |
| 57 | |
| 58 | switch { |
| 59 | case code == msgpcode.Map16 || code == msgpcode.Map32 || msgpcode.IsFixedMap(code): |
| 60 | err = d.queryMapKey(q) |
| 61 | case code == msgpcode.Array16 || code == msgpcode.Array32 || msgpcode.IsFixedArray(code): |
| 62 | err = d.queryArrayIndex(q) |
| 63 | default: |
| 64 | err = fmt.Errorf("msgpack: unsupported code=%x decoding key=%q", code, q.key) |
| 65 | } |
| 66 | return err |
| 67 | } |
| 68 | |
| 69 | func (d *Decoder) queryMapKey(q *queryResult) error { |
| 70 | n, err := d.DecodeMapLen() |
no test coverage detected