in graph/graph.go [89:108]
func (g *Graph[NT]) ToDotGraph() (string, error) {
nodes := make([]*DotNodeSpec, 0)
for _, node := range g.nodes {
nodes = append(nodes, node.DotSpec())
}
edges := make([]*DotEdgeSpec, 0)
for _, nodeEdges := range g.nodeEdges {
for _, edge := range nodeEdges {
edges = append(edges, g.edgeSpecFunc(edge.From, edge.To))
}
}
buf := new(bytes.Buffer)
err := digraphTemplate.Execute(buf, templateRef{Nodes: nodes, Edges: edges})
if err != nil {
return "", err
}
return buf.String(), nil
}