aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/select.rs13
-rw-r--r--src/yaml/sql.rs6
2 files changed, 16 insertions, 3 deletions
diff --git a/src/select.rs b/src/select.rs
index 6f82727..5b11fae 100644
--- a/src/select.rs
+++ b/src/select.rs
@@ -39,21 +39,28 @@ pub fn select(
// data.push(row.get(i)?);
// }
- let mut data: HashMap<&yaml_rust::Yaml, Yaml> = HashMap::new();
+ // let mut data: HashMap<&yaml_rust::Yaml, Yaml> = HashMap::new();
+ let mut data = yaml_rust::yaml::Hash::new();
for (i, column) in column_names.iter().enumerate() {
- data.insert(&column, row.get(i)?);
+ let column_value: Yaml = row.get(i)?;
+ data.insert(column.clone(), column_value.into_inner());
}
Ok(data)
},
).unwrap();
+ let mut row = None;
for row_result in rows {
- let row = row_result.unwrap();
+ row = Some(yaml_rust::Yaml::Hash(row_result.unwrap()));
dbg!(&row);
}
+ if let Some(r) = row {
+ return r;
+ }
+
// todo!();
yaml_rust::Yaml::Null
}
diff --git a/src/yaml/sql.rs b/src/yaml/sql.rs
index 49d83f7..ef72aae 100644
--- a/src/yaml/sql.rs
+++ b/src/yaml/sql.rs
@@ -16,6 +16,12 @@ pub(crate) struct Yaml<'a>(pub Cow<'a, yaml::Yaml>);
// impl From<
+impl<'a> Yaml<'a> {
+ pub fn into_inner(self) -> yaml::Yaml {
+ self.0.into_owned()
+ }
+}
+
impl<'a> rusqlite::ToSql for Yaml<'a> {
fn to_sql(&self) -> rusqlite::Result<rusqlite::types::ToSqlOutput<'_>> {
use rusqlite::types::ToSqlOutput;