in pkg/cloud/rgraph/algo/graphviz/graphviz.go [96:139]
func (n *viznode) String() string {
type line struct {
indent int
s string
}
var lines []line
lines = append(lines, line{1, fmt.Sprintf("\"%s\" [label=<", n.name)})
lines = append(lines, line{2, "<table border=\"0\">"})
lines = append(lines, line{3, "<tr><td colspan=\"2\"><font point-size=\"16\">\\N</font></td></tr>"})
lines = append(lines, line{3, "<tr><td colspan=\"2\">---</td></tr>"})
var keys []string
for k := range n.kv {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
lines = append(lines, line{3, fmt.Sprintf("<tr><td>%s</td><td align=\"left\">%v</td></tr>", k, n.kv[k])})
}
lines = append(lines, line{2, "</table>"})
var attribsStr string
for _, at := range []struct {
key string
val *string
}{
{"fillcolor", &n.fillcolor},
{"shape", &n.shape},
{"style", &n.style},
} {
if *at.val != "" {
attribsStr += fmt.Sprintf(`,%s=%s`, at.key, *at.val)
}
}
lines = append(lines, line{1, fmt.Sprintf(">%s]", attribsStr)})
var out string
for _, l := range lines {
out += n.indent(l.indent) + l.s + "\n"
}
return out
}