()
| 188 | } |
| 189 | |
| 190 | func (e *encodedArrayIterator) nextEncoded() (nextJEntry jEntry, next []byte, ok bool, err error) { |
| 191 | if e.idx >= e.len { |
| 192 | return jEntry{}, nil, false, nil |
| 193 | } |
| 194 | |
| 195 | // Recall the layout of an encoded array: |
| 196 | // [ container header ] [ all JEntries ] [ all values ] |
| 197 | nextJEntry, err = getJEntryAt(e.data, containerHeaderLen+e.idx*jEntryLen, e.curDataIdx) |
| 198 | if err != nil { |
| 199 | return jEntry{}, nil, false, err |
| 200 | } |
| 201 | nextLen := int(nextJEntry.length) |
| 202 | nextData := e.data[e.dataOffset+e.curDataIdx : e.dataOffset+e.curDataIdx+nextLen] |
| 203 | e.idx++ |
| 204 | e.curDataIdx += nextLen |
| 205 | return nextJEntry, nextData, true, nil |
| 206 | } |
| 207 | |
| 208 | // iterArrayValues iterates through all the values of an encoded array without |
| 209 | // requiring decoding of all of them. |
no test coverage detected