deepCopy method

List deepCopy([
  1. List? list
])

Creates a deep copy of the list, including nested maps, lists, and sets.

Implementation

List<dynamic> deepCopy([List<dynamic>? list]) {
  final source = list ?? this;
  final copy = <dynamic>[];

  for (final item in source) {
    switch (item) {
      case final Map<dynamic, dynamic> value:
        copy.add(value.deepCopy(value));
      case final List<dynamic> value:
        copy.add(value.deepCopy(value));
      case final Set<dynamic> value:
        copy.add(value.deepCopy(value));
      default:
        copy.add(item);
    }
  }
  return copy;
}