aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs17
-rw-r--r--src/main.rs8
2 files changed, 18 insertions, 7 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();
+ }
+}
diff --git a/src/main.rs b/src/main.rs
index 424c4ba..8b4e9af 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -16,13 +16,7 @@ fn main() {
let mut yaml_data = yaml::YamlLoader::load_from_str(&text_data).unwrap();
- for mut doc in &mut yaml_data {
- let tx = dbconn.transaction().unwrap();
-
- yaqlite::yaml::extract(&mut doc, &tx, &table_columns);
-
- tx.commit().unwrap();
- }
+ yaqlite::insert(&mut dbconn, "people", &mut yaml_data);
dbg!(yaml_data);