applyPatch method

void applyPatch(
  1. ListDiff<V> change
)

Implementation

void applyPatch(ListDiff<V> change) {
  try {
    if (change is DeleteDiff<V>) {
      for (int d = 0; d < change.delete.size; d++) {
        if (change.delete.index! < this.length) {
          this.removeAt(change.delete.index!);
        }
      }
    } else if (change is InsertDiff<V>) {
      var start = change.index!;
      for (final item in change.items) {
        this.insert(start++, item);
      }
    } else if (change is ReplaceDiff<V>) {
      var start = change.index;
      for (final item in change.items) {
        this[start!] = item;
      }
    }
  } catch (e, stack) {
    // ignore: unnecessary_brace_in_string_interps
    log.severe("Error updating statse for $debugLabel: $e", e, stack);
    rethrow;
  }
}