forEach method

void forEach(
  1. void visit(
    1. DocView document
    )
)

Visits every document in block order.

Implementation

void forEach(void Function(DocView document) visit) {
  for (var i = 0; i < blockCount; i++) {
    final blockStart = start + VxsLe.u32(buffer, tableOffset + i * 4);
    final blockEnd = i + 1 < blockCount
        ? start + VxsLe.u32(buffer, tableOffset + (i + 1) * 4)
        : _firstMetadataOffset();
    final reader = BlockReader(
      buffer,
      offset: blockStart,
      length: blockEnd - blockStart,
    );
    reader.forEach(visit);
  }
}