in graph/graph.go [110:120]
func (g *Graph[NT]) TopologicalSort() []NT {
visited := make(map[string]bool)
stack := make([]NT, 0)
for _, node := range g.nodes {
if !visited[node.GetName()] {
g.topologicalSortInternal(node, &visited, &stack)
}
}
return stack
}