deepHash function

int deepHash(
  1. Object? value
)

A hash code that matches deepEquals: equal contents always give equal hashes.

Implementation

int deepHash(Object? value) {
  return switch (value) {
    List() => Object.hashAll(value.map(deepHash)),
    Map() => Object.hashAllUnordered(
      value.entries.map((e) => Object.hash(deepHash(e.key), deepHash(e.value))),
    ),
    Set() => Object.hashAllUnordered(value.map(deepHash)),
    _ => value.hashCode,
  };
}