polars-sqlite 0.3.9

Rust sqlite3 traits for polars dataframe
Documentation
// 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}
}