diff options
-rw-r--r-- | src/main.rs | 34 |
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 + } + } + _ => {} } } |