summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-11-10 04:59:09 -0500
committerJesse Luehrs <doy@tozt.net>2018-11-10 04:59:09 -0500
commitbaaf4968270dc6019289faafa56a84b2045286f6 (patch)
tree59b51829281c8ca4ec5f3272fead155651b8fb7d
parent67073417c345cc7399808ffec03a7e34eb350b91 (diff)
downloadlastfm-query-baaf4968270dc6019289faafa56a84b2045286f6.tar.gz
lastfm-query-baaf4968270dc6019289faafa56a84b2045286f6.zip
simplify
-rw-r--r--src/cmd/sql.rs6
-rw-r--r--src/db.rs4
2 files changed, 3 insertions, 7 deletions
diff --git a/src/cmd/sql.rs b/src/cmd/sql.rs
index 8332164..81fdaef 100644
--- a/src/cmd/sql.rs
+++ b/src/cmd/sql.rs
@@ -36,19 +36,15 @@ impl super::Command for Command {
fn run(&self) -> failure::Fallible<()> {
let db = db::DB::new(&util::db_path()?)?;
- let rows_cell = std::cell::Cell::new(Some(vec![]));
+ let mut rows = vec![];
let cols = db.query(&self.query, |row| {
let display_row: Vec<String> = (0..row.column_count())
.map(|i| row.get_raw(i))
.map(|v| format_value(&v))
.collect();
- let mut rows = rows_cell.replace(None).unwrap();
rows.push(display_row);
- rows_cell.replace(Some(rows));
})?;
- let rows = rows_cell.into_inner().unwrap();
-
if self.tsv {
print_tsv(&rows);
}
diff --git a/src/db.rs b/src/db.rs
index 63caa87..c428da8 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -112,10 +112,10 @@ impl DB {
Ok(())
}
- pub fn query<F: Fn(&rusqlite::Row)>(
+ pub fn query<F: FnMut(&rusqlite::Row)>(
&self,
query: &str,
- f: F
+ mut f: F
) -> failure::Fallible<Vec<String>> {
let mut sth = self.conn.prepare(query)?;