From db05a516596857f0e754d6cd48fe7c9669843731 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 12 Mar 2022 21:01:57 +0100 Subject: Move `Yaml` newtype to a new module in library crate Separate this code from the main binary file. --- src/lib.rs | 1 + src/main.rs | 24 +----------------------- src/yaml.rs | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 23 deletions(-) create mode 100644 src/yaml.rs (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 6b1c108..32634e9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1,2 @@ pub mod sqlite; +pub mod yaml; diff --git a/src/main.rs b/src/main.rs index f958f40..48d01b4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -85,7 +85,7 @@ fn yaml_extract( ) ).unwrap(); - let values = hash.values().map(|v| Yaml(v)); + let values = hash.values().map(|v| yaqlite::yaml::Yaml(v)); stmt.insert(rusqlite::params_from_iter(values)).unwrap(); // tx.execute( @@ -148,25 +148,3 @@ fn get_column_names(dbconn: &rusqlite::Connection) -> HashMap(&'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) - } -} diff --git a/src/yaml.rs b/src/yaml.rs new file mode 100644 index 0000000..1e9c903 --- /dev/null +++ b/src/yaml.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