aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorTeddy Wing2022-03-12 22:12:45 +0100
committerTeddy Wing2022-03-12 22:12:45 +0100
commit8dd59ee6fee0f023a75d4657ad07f6f09b14fc9c (patch)
treeb2334bfef45beaa3d2b5a0570b52f943354edd3c /src/lib.rs
parent2388395752fbd56b8e1213ff60ccb2a40d23c806 (diff)
downloadyaqlite-8dd59ee6fee0f023a75d4657ad07f6f09b14fc9c.tar.bz2
Add an `insert()` function for inserting YAML in database
Make an interface that more cleanly says "insert this YAML into this database".
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 32634e9..ac8d74e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,2 +1,19 @@
pub mod sqlite;
pub mod yaml;
+
+
+pub fn insert(
+ dbconn: &mut rusqlite::Connection,
+ table_name: &str,
+ data: &mut [yaml_rust::Yaml],
+) {
+ let table_columns = crate::sqlite::get_column_names(&dbconn, table_name);
+
+ for mut doc in data {
+ let tx = dbconn.transaction().unwrap();
+
+ crate::yaml::extract(&mut doc, &tx, &table_columns);
+
+ tx.commit().unwrap();
+ }
+}