diff --git a/lianad/src/database/sqlite/utils.rs b/lianad/src/database/sqlite/utils.rs index 5847a6c6..f26f4f0e 100644 --- a/lianad/src/database/sqlite/utils.rs +++ b/lianad/src/database/sqlite/utils.rs @@ -50,6 +50,21 @@ where .collect::>>() } +/// Internal helper for queries boilerplate +pub fn db_query_row( + conn: &mut rusqlite::Connection, + stmt_str: &str, + params: P, + f: F, +) -> Result +where + P: IntoIterator + rusqlite::Params, + P::Item: rusqlite::ToSql, + F: FnMut(&rusqlite::Row<'_>) -> rusqlite::Result, +{ + conn.prepare(stmt_str)?.query_row(params, f) +} + /// The current time as the number of seconds since the UNIX epoch, truncated to u32 since SQLite /// only supports i64 integers. pub fn curr_timestamp() -> u32 {