aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2022-03-12 21:01:57 +0100
committerTeddy Wing2022-03-12 21:02:45 +0100
commitdb05a516596857f0e754d6cd48fe7c9669843731 (patch)
tree4ce1102b4810272ed018f7622e8877efad8588fb
parentc487910ee09e0cfd0e5cc2ee1e6232dd7accd073 (diff)
downloadyaqlite-db05a516596857f0e754d6cd48fe7c9669843731.tar.bz2
Move `Yaml` newtype to a new module in library crate
Separate this code from the main binary file.
-rw-r--r--src/lib.rs1
-rw-r--r--src/main.rs24
-rw-r--r--src/yaml.rs24
3 files changed, 26 insertions, 23 deletions
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<String, rusqlite::
column_names
}
-
-struct Yaml<'a>(&'a yaml::Yaml);
-
-impl<'a> rusqlite::ToSql for Yaml<'a> {
- fn to_sql(&self) -> rusqlite::Result<rusqlite::types::ToSqlOutput<'_>> {
- 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<rusqlite::types::ToSqlOutput<'_>> {
+ 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)
+ }
+}