extension IterableExtensionMap on Iterable> { Map toMap() { var map = {}; for (var item in this) { map[item.key] = item.value; } return map; } } extension IterableExtension on Iterable { T? firstWhereOrNull(bool Function(T element) test) { for (var element in this) { if (test(element)) return element; } return null; } }