Radix.dot
You're seeing just the function
dot
, go back to Radix module for more information.
Specs
Given a tree, returns a list of lines describing the tree as a graphviz digraph.
Options include:
:label
, defaults to "radix"):labelloc
, defaults to "t":rankdir
, defaults to "TB":ranksep
, defaults to "0.5 equally":rootcolor
, defaults to "organge":nodecolor
, defaults to "yellow":leafcolor
, defaults to "green":kv_tostr
, defaults to an internal function that converts key to dotted decimal string (cidr style)
If supplied via :kv_tostr
, the function's signature must be ({key/0
, value/0
}) ::> String.t/0
and where the resulting string must be HTML-escaped. See html-entities.
Works best for smaller trees.
Example
iex> t = new()
...> |> put(<<0, 0>>, "left")
...> |> put(<<1, 1, 1::1>>, "left")
...> |> put(<<128, 0>>, "right")
iex> g = dot(t, label: "example")
["digraph Radix {\n labelloc=\"t\";\n label=\"example\";\n rankdir=\"TB\";\n ranksep=\"0.5 equally\";\n",
"N4 [label=<\n <TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\">\n <TR><TD PORT=\"N4\" BGCOLOR=\"green\">leaf</TD></TR>\n <TR><TD>128.0/16</TD></TR>\n </TABLE>\n >, shape=\"plaintext\"];\n",
"N2 [label=<\n <TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\">\n <TR><TD PORT=\"N2\" BGCOLOR=\"green\">leaf</TD></TR>\n <TR><TD>1.1.128/17</TD></TR>\n </TABLE>\n >, shape=\"plaintext\"];\n",
"N1 [label=<\n <TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\">\n <TR><TD PORT=\"N1\" BGCOLOR=\"green\">leaf</TD></TR>\n <TR><TD>0.0/16</TD></TR>\n </TABLE>\n >, shape=\"plaintext\"];\n",
"N3:R -> N2;\n",
"N3:L -> N1;\n",
"N3 [label=<\n <TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\">\n <TR><TD PORT=\"N3\" COLSPAN=\"2\" BGCOLOR=\"yellow\">bit 7</TD></TR>\n <TR><TD PORT=\"L\">0</TD><TD PORT=\"R\">1</TD></TR>\n </TABLE>\n>, shape=\"plaintext\"];\n",
"N5:R -> N4;\n",
"N5:L -> N3;\n",
"N5 [label=<\n <TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\">\n <TR><TD PORT=\"N5\" COLSPAN=\"2\" BGCOLOR=\"orange\">bit 0</TD></TR>\n <TR><TD PORT=\"L\">0</TD><TD PORT=\"R\">1</TD></TR>\n </TABLE>\n>, shape=\"plaintext\"];\n",
"}"]
iex> File.write("img/example.dot", g)
:ok
which, after converting with dot
, yields the following image: