replaceAllAt method
Implementation
DiagramPersistentList<T> replaceAllAt(Map<int, T> replacements) {
if (replacements.isEmpty) return this;
final chunks = _chunks.toList(growable: false);
final changed = <int, List<T>>{};
for (final entry in replacements.entries) {
RangeError.checkValidIndex(entry.key, this);
if (identical(this[entry.key], entry.value)) continue;
final page = entry.key ~/ _chunkSize;
final chunk = changed.putIfAbsent(
page,
() => _chunks[page].toList(growable: false),
);
chunk[entry.key % _chunkSize] = entry.value;
}
if (changed.isEmpty) return this;
for (final entry in changed.entries) {
chunks[entry.key] = List.unmodifiable(entry.value);
}
return DiagramPersistentList<T>._(List.unmodifiable(chunks), length);
}