mergeKeysValuesNullable<M> method

Map<K, M> mergeKeysValuesNullable<M>(
  1. Map<K, V> other,
  2. M merger(
    1. K key,
    2. V? val1,
    3. V? val2
    )
)

Same as mergeKeysValues, but allows null at merger.

Implementation

Map<K, M> mergeKeysValuesNullable<M>(
    Map<K, V> other, M Function(K key, V? val1, V? val2) merger) {
  var merge = <K, M>{};

  var allKeys = <K>{...keys, ...other.keys};

  for (var k in allKeys) {
    var v1 = this[k];
    var v2 = other[k];

    merge[k] = merger(k, v1, v2);
  }

  return merge;
}