aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTeddy Wing2022-03-08 21:55:20 +0100
committerTeddy Wing2022-03-08 21:55:20 +0100
commit528dcd76c0f22a5363e2d6cd07d963503ec1f923 (patch)
tree32d7119686b6bd6e33036cd5231ae0d357ea0ceb /src
parenta04e368947ffa5c2c679c149e86ddf423a042822 (diff)
downloadyaqlite-528dcd76c0f22a5363e2d6cd07d963503ec1f923.tar.bz2
Try extracting YAML data
Diffstat (limited to 'src')
-rw-r--r--src/main.rs34
1 files changed, 29 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index 28d2f6f..f0c11a2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,16 +1,40 @@
use rusqlite;
-use yaml_rust;
+use yaml_rust::yaml;
fn main() {
println!("Hello, world!");
+ // Get column names from SQLite
+
let text_data = std::fs::read_to_string("test.yml").unwrap();
- {
- use yaml_rust::YamlLoader;
+ let yaml_data = yaml::YamlLoader::load_from_str(&text_data).unwrap();
+
+ for doc in &yaml_data {
+ yaml_extract(&doc);
+ }
+
+ dbg!(yaml_data);
+}
+
+fn yaml_extract(doc: &yaml::Yaml) {
+ match doc {
+ yaml::Yaml::Array(ref array) => {
+ for yaml_value in array {
+ yaml_extract(yaml_value);
+ }
+ }
+ yaml::Yaml::Hash(ref hash) => {
+ // Begin transaction
+ for (k, v) in hash {
+ // TODO: Put k,v in a HashMap prepared for SQLite interfacing
+ dbg!(k, v);
- let yaml_data = YamlLoader::load_from_str(&text_data).unwrap();
+ // Each hash is a new record for SQLite insertion
- dbg!(yaml_data);
+ // If key matches a column name, add it to the insert statement
+ }
+ }
+ _ => {}
}
}