diff options
Diffstat (limited to 'src')
| -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 +            } +        } +        _ => {}      }  } | 
