parentsOf method
Implementation
Map<V, Vertex<V>> parentsOf(Vertex<V> vertex) {
if (!vertices.containsValue(vertex)) return {};
return vertices.entries.fold({}, (a, c) {
final parentIds = uniqueEdges.keys
.where((edgeId) => edgeId.$2 == c.key)
.map((edgeId) => edgeId.$1);
final parents = Map.fromEntries(vertices.entries
.where((entry) => parentIds.any((childId) => entry.key == childId))
.where((entry) => !a.containsKey(entry.key)));
return {...a, ...parents};
});
}