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

Method queryArrayIndex

decode_query.go:102–148  ·  view source on GitHub ↗
(q *queryResult)

Source from the content-addressed store, hash-verified

100}
101
102func (d *Decoder) queryArrayIndex(q *queryResult) error {
103 n, err := d.DecodeArrayLen()
104 if err != nil {
105 return err
106 }
107 if n == -1 {
108 return nil
109 }
110
111 if q.key == "*" {
112 q.hasAsterisk = true
113
114 query := q.query
115 for i := 0; i < n; i++ {
116 q.query = query
117 if err := d.query(q); err != nil {
118 return err
119 }
120 }
121
122 q.hasAsterisk = false
123 return nil
124 }
125
126 ind, err := strconv.Atoi(q.key)
127 if err != nil {
128 return err
129 }
130
131 for i := 0; i < n; i++ {
132 if i == ind {
133 if err := d.query(q); err != nil {
134 return err
135 }
136 if q.hasAsterisk {
137 return d.skipNext(n - i - 1)
138 }
139 return nil
140 }
141
142 if err := d.Skip(); err != nil {
143 return err
144 }
145 }
146
147 return nil
148}
149
150func (d *Decoder) skipNext(n int) error {
151 for i := 0; i < n; i++ {

Callers 1

queryMethod · 0.95

Calls 4

DecodeArrayLenMethod · 0.95
queryMethod · 0.95
skipNextMethod · 0.95
SkipMethod · 0.95

Tested by

no test coverage detected