moveNext method
Advances to the next in-range entry.
Implementation
bool moveNext() {
while (_index < _reader._indexCount) {
final entryStart = _reader._entryStart(_index);
final keyLength = VxsLe.u16(_reader.buffer, entryStart);
final key = Uint8List.sublistView(
_reader.buffer,
entryStart + 2,
entryStart + 2 + keyLength,
);
if (_upper != null) {
final comparison = StringView.compareRanges(
key,
0,
key.length,
_upper,
0,
_upper.length,
);
if (comparison > 0 || (comparison == 0 && !_includeUpper)) {
_index = _reader._indexCount;
return false;
}
}
final docOffset = VxsLe.u32(_reader.buffer, entryStart + 2 + keyLength);
_key = key;
if (docOffset != segmentTombstone) _reader.verifyBlockFor(docOffset);
_document = docOffset == segmentTombstone
? null
: DocView.parse(_reader.buffer, docOffset, _reader.end - docOffset);
_index++;
return true;
}
return false;
}