filterPoolElements method

FutureOr<List<C>> filterPoolElements(
  1. FutureOr<bool> filter(
    1. C o
    )
)
inherited

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();
  }
}