read static method

HighlightResult read(
  1. BinaryReader reader
)

Implementation

static HighlightResult read(BinaryReader reader) {
  if (reader.isEOF) {
    return HighlightResult(HighlightResultType.unknown);
  }
  final diffs = <HighlightDiffEntry>[];
  final diffCount = reader.readVarUint();
  for (int i = 0; i < diffCount; i++) {
    final changeTypeValue = reader.readUint8();
    final changeType = changeTypeValue < HighlightDiffChangeType.values.length
        ? HighlightDiffChangeType.values[changeTypeValue]
        : HighlightDiffChangeType.removed;
    final lineIndex = reader.readVarUint();
    final lineCount = reader.readVarUint();
    // destLineIndex is only serialized for removed entries
    final destLineIndex = changeType == HighlightDiffChangeType.removed
        ? reader.readVarUint()
        : lineIndex;
    diffs.add(HighlightDiffEntry(
      changeType: changeType,
      lineIndex: lineIndex,
      lineCount: lineCount,
      destLineIndex: destLineIndex,
    ));
  }
  return HighlightResult(HighlightResultType.computed, diffs: diffs);
}