From f4d5d7ee9897ed59cf83313774d160c832c091f3 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 12 Mar 2022 21:50:13 +0100 Subject: Move `yaqlite::yaml` to `yaqlite::yaml::sql` Want to use `yaqlite::yaml` for the YAML extraction function. --- src/yaml/sql.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/yaml/sql.rs (limited to 'src/yaml') diff --git a/src/yaml/sql.rs b/src/yaml/sql.rs new file mode 100644 index 0000000..1e9c903 --- /dev/null +++ b/src/yaml/sql.rs @@ -0,0 +1,24 @@ +use yaml_rust::yaml; + + +pub struct Yaml<'a>(pub &'a yaml::Yaml); + +impl<'a> rusqlite::ToSql for Yaml<'a> { + fn to_sql(&self) -> rusqlite::Result> { + use rusqlite::types::ToSqlOutput; + + let sql_output = match self.0 { + yaml::Yaml::Real(_) => ToSqlOutput::from(self.0.as_f64().unwrap()), + yaml::Yaml::Integer(_) => ToSqlOutput::from(self.0.as_i64().unwrap()), + yaml::Yaml::String(_) => ToSqlOutput::from(self.0.as_str().unwrap()), + yaml::Yaml::Boolean(_) => ToSqlOutput::from(self.0.as_bool().unwrap()), + yaml::Yaml::Array(_) => ToSqlOutput::from(rusqlite::types::Null), + yaml::Yaml::Hash(_) => ToSqlOutput::from(rusqlite::types::Null), + yaml::Yaml::Alias(_) => ToSqlOutput::from(rusqlite::types::Null), + yaml::Yaml::Null => ToSqlOutput::from(rusqlite::types::Null), + yaml::Yaml::BadValue => ToSqlOutput::from(rusqlite::types::Null), + }; + + Ok(sql_output) + } +} -- cgit v1.2.3