deepCopy method

Map deepCopy([
  1. Map? map
])

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

Implementation

Map<dynamic, dynamic> deepCopy([Map<dynamic, dynamic>? map]) {
  final source = map ?? this;
  final copy = <dynamic, dynamic>{};

  for (final entry in source.entries) {
    final key = entry.key;
    final value = entry.value;

    switch (value) {
      case final Map<dynamic, dynamic> value:
        copy[key] = deepCopy(value);
      case final List<dynamic> value:
        copy[key] = value.deepCopy(value);
      case final Set<dynamic> value:
        copy[key] = value.deepCopy(value);
      default:
        copy[key] = value;
    }
  }
  return copy;
}