aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2022-03-13 02:57:44 +0100
committerTeddy Wing2022-03-13 02:57:44 +0100
commit8cd470b4be6128ac9f4df61c796e4568662be896 (patch)
tree665a0378a4ca3109c14020138ccb9f669eb8dc95
parentc7f7ffa4488734c97f0be226fa7a5e2d79ca85e5 (diff)
downloadyaqlite-8cd470b4be6128ac9f4df61c796e4568662be896.tar.bz2
Yaml::to_sql(): Remove `unwrap()`s
If any value extraction comes back as `None`, convert it to a SQL `Null`.
-rw-r--r--src/yaml/sql.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/yaml/sql.rs b/src/yaml/sql.rs
index 1e9c903..68488d2 100644
--- a/src/yaml/sql.rs
+++ b/src/yaml/sql.rs
@@ -8,10 +8,22 @@ impl<'a> rusqlite::ToSql for Yaml<'a> {
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::Real(_) => match self.0.as_f64() {
+ Some(v) => ToSqlOutput::from(v),
+ None => ToSqlOutput::from(rusqlite::types::Null),
+ },
+ yaml::Yaml::Integer(_) => match self.0.as_i64() {
+ Some(v) => ToSqlOutput::from(v),
+ None => ToSqlOutput::from(rusqlite::types::Null),
+ },
+ yaml::Yaml::String(_) => match self.0.as_str() {
+ Some(v) => ToSqlOutput::from(v),
+ None => ToSqlOutput::from(rusqlite::types::Null),
+ },
+ yaml::Yaml::Boolean(_) => match self.0.as_bool() {
+ Some(v) => ToSqlOutput::from(v),
+ None => ToSqlOutput::from(rusqlite::types::Null),
+ },
yaml::Yaml::Array(_) => ToSqlOutput::from(rusqlite::types::Null),
yaml::Yaml::Hash(_) => ToSqlOutput::from(rusqlite::types::Null),
yaml::Yaml::Alias(_) => ToSqlOutput::from(rusqlite::types::Null),