filterPoolElements method
Implementation
FutureOr<List<O>> filterPoolElements(FutureOr<bool> Function(O o) filter) {
var hasFuture = false;
var elements = _pool.map<FutureOr<O?>>((o) {
var valid = filter(o);
if (valid is Future<bool>) {
hasFuture = true;
return valid.then((valid) => valid ? o : null);
}
return valid ? o : null;
}).toList();
if (hasFuture) {
return elements.resolveAllNotNull();
} else {
return elements.whereType<O>().toList();
}
}