()
| 174 | } |
| 175 | |
| 176 | func (e *encodedArrayIterator) nextEncoded() (nextJEntry jEntry, next []byte, ok bool, err error) { |
| 177 | if e.idx >= e.len { |
| 178 | return jEntry{}, nil, false, nil |
| 179 | } |
| 180 | |
| 181 | // Recall the layout of an encoded array: |
| 182 | // [ container header ] [ all JEntries ] [ all values ] |
| 183 | nextJEntry, err = getJEntryAt(e.data, containerHeaderLen+e.idx*jEntryLen, e.curDataIdx) |
| 184 | if err != nil { |
| 185 | return jEntry{}, nil, false, err |
| 186 | } |
| 187 | nextLen := int(nextJEntry.length) |
| 188 | nextData := e.data[e.dataOffset+e.curDataIdx : e.dataOffset+e.curDataIdx+nextLen] |
| 189 | e.idx++ |
| 190 | e.curDataIdx += nextLen |
| 191 | return nextJEntry, nextData, true, nil |
| 192 | } |
| 193 | |
| 194 | // iterArrayValues iterates through all the values of an encoded array without |
| 195 | // requiring decoding of all of them. |
no test coverage detected