deepMapEquality<T> function

bool deepMapEquality<T>(
  1. Map<T, dynamic> map1,
  2. Map<T, dynamic> map2
)

Implementation

bool deepMapEquality<T>(Map<T, dynamic> map1, Map<T, dynamic> map2) {
  if (map1.length != map2.length) {
    return false;
  }

  for (final key in map1.keys) {
    if (map1[key] == map2[key]) {
      continue;
    } else if (map1[key] is List && map2[key] is List) {
      if (deepListEquality(map1[key], map2[key])) {
        continue;
      } else {
        return false;
      }
    } else if (map1[key] is Map<String, dynamic> &&
        map2[key] is Map<String, dynamic>) {
      if (deepMapEquality(map1[key], map2[key])) {
        continue;
      } else {
        return false;
      }
    } else {
      return false;
    }
  }

  return true;
}