structuralEquals static method

bool structuralEquals(
  1. dynamic a,
  2. dynamic b
)

Checks if two objects are structurally equal.

Recursively compares Maps and Lists. Fallback to == for other types.

Implementation

static bool structuralEquals(dynamic a, dynamic b) {
  if (identical(a, b)) return true;

  if (a is List && b is List) {
    return _listEquals(a, b);
  }

  if (a is Map && b is Map) {
    return _mapEquals(a, b);
  }

  if (a is Set && b is Set) {
    return _setEquals(a, b);
  }

  return a == b;
}