Stream<VEntity> getAllChildren(List<VEntity> roots) async* { for (VEntity root in roots) { if (root is VFolder) { yield* getAllChildren(await getChildren(root).toList()); } yield root; } }