diff options
author | Teddy Wing | 2022-03-08 21:55:20 +0100 |
---|---|---|
committer | Teddy Wing | 2022-03-08 21:55:20 +0100 |
commit | 528dcd76c0f22a5363e2d6cd07d963503ec1f923 (patch) | |
tree | 32d7119686b6bd6e33036cd5231ae0d357ea0ceb /src | |
parent | a04e368947ffa5c2c679c149e86ddf423a042822 (diff) | |
download | yaqlite-528dcd76c0f22a5363e2d6cd07d963503ec1f923.tar.bz2 |
Try extracting YAML data
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 + } + } + _ => {} } } |