diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/sql.rs | 6 | ||||
-rw-r--r-- | src/db.rs | 4 |
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); } @@ -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)?; |