import 'package:collection/collection.dart'; extension ExtraMapNullableKey on Map { Map whereNotNullKey() => {for (var v in keys.whereNotNull()) v: this[v] as V}; } extension ExtraMapNullableValue on Map { Map whereNotNullValue() => {for (var kv in entries.where((kv) => kv.value != null)) kv.key: kv.value as V}; } extension ExtraMapNullableKeyValue on Map { Map whereNotNullKey() => {for (var v in keys.whereNotNull()) v: this[v]}; Map whereNotNullValue() => {for (var kv in entries.where((kv) => kv.value != null)) kv.key: kv.value as V}; } extension ExtraNumIterable on Iterable { int get sum => fold(0, (prev, v) => prev + (v ?? 0)); }