groupMapBy<K, V> method
GroupMapping<T, K, V>
groupMapBy<
K, V>({ - required K grouper(
- T
),
- required V mapper(
- T
),
- required List<K> possibleGroups,
- 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);
}