From 3f4a6ec11e55a1d5634ba24e2dfd32d9e1d70d65 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 6 Nov 2018 23:26:02 -0500 Subject: make db syncing work --- src/db.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/db.rs') diff --git a/src/db.rs b/src/db.rs index 450202f..b291e86 100644 --- a/src/db.rs +++ b/src/db.rs @@ -1,4 +1,5 @@ use error::Result; +use lastfm; const SCHEMA: &'static str = " CREATE TABLE `tracks` ( @@ -56,4 +57,23 @@ impl DB { } })?) } + + pub fn insert_tracks( + &self, + tracks: impl Iterator, + mut f: F + ) -> Result<()> { + let mut sth = self.conn.prepare("INSERT INTO tracks VALUES (?, ?, ?, ?)")?; + for track in tracks { + sth.execute( + &[ + &track.artist as &rusqlite::types::ToSql, + &track.album, + &track.name, + &track.timestamp, + ]).map(|_| ())?; + f(track); + } + Ok(()) + } } -- cgit v1.2.3-54-g00ecf