compareListChanges<T> function

({List<T> added, List<T> removed}) compareListChanges<T>(
  1. List<T> oldList,
  2. List<T> newList
)

Implementation

({List<T> added, List<T> removed}) compareListChanges<T>(
  List<T> oldList,
  List<T> newList,
) {
  final added = <T>[];
  final removed = <T>[];

  final oldSet = oldList.toSet();
  final newSet = newList.toSet();

  for (final item in newList) {
    if (!oldSet.contains(item)) {
      added.add(item);
    }
  }

  for (final item in oldList) {
    if (!newSet.contains(item)) {
      removed.add(item);
    }
  }

  return (
    added: added,
    removed: removed,
  );
}