From 99bcc93dc2b1245fb977cb4d04b479652c13f9ac Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 16 Mar 2022 00:43:39 +0100 Subject: select(): Trying to convert a SQLite row to `yaml_rust::Yaml` Still a work in progress. Trying to figure out what makes the most sense for converting between the different types in SQLite and YAML. This code still has some compilation errors. --- src/select.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/select.rs') diff --git a/src/select.rs b/src/select.rs index 1e4d81b..0c61c34 100644 --- a/src/select.rs +++ b/src/select.rs @@ -3,6 +3,8 @@ pub fn select( table_name: &str, record_id: &str, ) -> yaml_rust::Yaml { + use crate::yaml::Yaml; + let mut stmt = dbconn.prepare( &format!( r#" @@ -15,13 +17,32 @@ pub fn select( ), ).unwrap(); + let column_count = stmt.column_count(); + let rows = stmt.query_map( rusqlite::named_params! { ":pk_column": "id", ":pk": record_id, }, |row| { - Ok(()) + // let data: [dyn rusqlite::types::FromSql; column_count] = [rusqlite::types::Null; column_count]; + // let data: Vec + // = Vec::with_capacity(column_count); + // let data = Vec::with_capacity(column_count); + let data: Vec = Vec::with_capacity(column_count); + + // for i in 0..=column_count { + // data.push(row.get(i)); + // } + + // TODO: column values must be converted to yaml_rust::Yaml in this + // closure. + + for i in 0..=column_count { + data.push(row.get(i)?); + } + + Ok(data) }, ).unwrap(); -- cgit v1.2.3