recursiveFilterBy method
Implementation
Iterable<E> recursiveFilterBy(
Iterable<E>? Function(E data) childrenGetter,
bool Function(E data) prediction,
) {
final List<E> found = <E>[];
Iterable<E> find(Iterable<E> data) {
for (final E e in data) {
final Iterable<E>? children = childrenGetter(e);
if (children?.isNotEmpty ?? false) {
find(children!);
}
if (prediction(e)) {
found.add(e);
}
}
return found;
}
return find(this);
}