// dot -v -Kdot -Tpng res\dtypes.v -ores\dtypes.png digraph dtypes { graph [ charset = "UTF-8"; label = "conversion between polars DataFrame DataTypes and sqlite::Value", labelloc = "t", labeljust = "c", bgcolor = "#336699", fontcolor = violet, fontsize = 24, style = "filled", rankdir = TB, margin = 0.2, splines = spline, ranksep = 1.0, nodesep = 0.9 ]; node [ colorscheme = "rdylgn11" style = "solid,filled", fontsize = 20, fontcolor = 6, fontname = "Migu 1M", color = 7, fillcolor = 11, fixedsize = true, height = 1.2, width = 3.6 ]; edge [ style = solid, fontsize = 16, fontcolor = cyan, fontname = "Migu 1M", color = white, labelfloat = true, labeldistance = 2.5, labelangle = 70 ]; // node define sqlite3Table [shape=box]; Values [label="Vec<(&str, sqlite::Value)>", shape=box]; sqliteRow [label="sqlite::Row", shape=box]; Tester [shape=circle, fontcolor=1, color=7, fillcolor=10]; RecTester [shape=doublecircle, fontcolor=1, color=7, fillcolor=10]; StTester [shape=Msquare, fontcolor=11, color=7, fillcolor=9]; Row [label="polars::frame::row::Row", shape=polygon, sides=6]; // edge define sqlite3Table -> sqliteRow[label="read", arrowtail=crow, dir=back, style=dashed, color=lime, fontcolor=lime]; Values -> sqlite3Table[label="write", arrowhead=normal, style=bold, color=navy]; StTester -> Values[taillabel=".to_sqlite3_vec()", arrowhead=normal, style=bold, color=navy]; sqliteRow -> Tester[label="to_tester()", arrowhead=tee, style=dashed, color=lime, fontcolor=lime]; sqliteRow -> RecTester[taillabel="from", arrowtail=crow, dir=back]; sqliteRow -> StTester[taillabel="from", arrowtail=crow, dir=back]; Tester -> RecTester[taillabel="from", arrowtail=crow, dir=back, style=dotted, color=orange, fontcolor=orange]; Tester -> StTester[taillabel="from", arrowtail=crow, dir=back, style=dashed, color=lime, fontcolor=lime]; StTester -> Tester[taillabel=".to_tester()", arrowhead=normal, color=orange, fontcolor=orange]; RecTester -> Row[taillabel=".into_iter().collect()", arrowhead=normal]; StTester -> Row[taillabel=".into_vec()", arrowhead=normal, style=dashed, color=lime, fontcolor=lime]; Row -> StTester[taillabel="from", arrowtail=crow, dir=back, style=bold, color=navy]; {rank=min; sqlite3Table} {rank=same; Tester, sqliteRow, Values} {rank=same; RecTester, StTester} {rank=max; Row} }