executeInAllInjectors<T> method
void
executeInAllInjectors<T>(
- AutoInjectorImpl startInjector,
- T callback(
- AutoInjectorImpl
Execute callback
in all the injectors.
NOTE: Algorithm based on BFS (breadth-first search)
Implementation
void executeInAllInjectors<T>(
AutoInjectorImpl startInjector,
T Function(AutoInjectorImpl) callback,
) {
final visited = <AutoInjectorImpl>{};
final queue = Queue<AutoInjectorImpl>();
queue.add(startInjector);
while (queue.isNotEmpty) {
final currentInjector = queue.removeFirst();
callback(currentInjector);
if (adjacencyList[currentInjector] == null) continue;
for (final adjacentInjector in adjacencyList[currentInjector]!) {
if (!visited.contains(adjacentInjector)) {
visited.add(adjacentInjector);
queue.add(adjacentInjector);
}
}
}
}