groupMapBy<K, V> method

GroupMapping<T, K, V> groupMapBy<K, V>({
  1. required K grouper(
    1. T
    ),
  2. required V mapper(
    1. T
    ),
  3. required List<K> possibleGroups,
  4. String? name,
})

Implementation

GroupMapping<T, K, V> groupMapBy<K, V>(
    {required K Function(T) grouper,
    required V Function(T) mapper,
    required List<K> possibleGroups,
    String? name}) {
  final groupNodes = {
    for (var key in possibleGroups)
      key: this.where((T e) => grouper(e) == key, name: '$name-$key')
  };
  final mapNodes = {
    for (var key in possibleGroups)
      key:
          groupNodes[key]!.map((T e) => mapper(e), name: '$name-$key-mapping')
  };
  return GroupMapping<T, K, V>(this, grouper, mapNodes, mapper);
}