ProgramRenderChangeSummary.fromNative constructor

ProgramRenderChangeSummary.fromNative({
  1. TerminalNativeDeltaFrame? nativeDelta,
  2. TerminalNativeCellDeltaFrame? nativeCellDelta,
  3. List<TerminalNativeSpanDelta>? nativeSpanDelta,
})

Builds a summary from native render deltas.

Implementation

factory ProgramRenderChangeSummary.fromNative({
  TerminalNativeDeltaFrame? nativeDelta,
  TerminalNativeCellDeltaFrame? nativeCellDelta,
  List<TerminalNativeSpanDelta>? nativeSpanDelta,
}) {
  final changedLines =
      nativeCellDelta?.lines ?? const <TerminalNativeLineDelta>[];
  final spanLines = nativeSpanDelta ?? const <TerminalNativeSpanDelta>[];
  return ProgramRenderChangeSummary(
    dirtyLineCount: nativeDelta?.lines.length ?? 0,
    changedLineCount: changedLines.length,
    changedCellCount: changedLines.fold<int>(
      0,
      (sum, line) => sum + line.cells.length,
    ),
    changedSpanCount: spanLines.fold<int>(
      0,
      (sum, line) => sum + line.spans.length,
    ),
  );
}