derive_sql/proxy/sqlite/
conn.rs

1use super::*;
2
3pub struct Conn {
4  conn: rusqlite::Connection,
5}
6
7impl std::convert::From<rusqlite::Connection> for Conn {
8  fn from(conn: rusqlite::Connection) -> Self { Conn { conn } }
9}
10
11impl SqliteTrait for Conn {
12  fn execute<P>(&self, sql: &str, params: P) -> DeriveSqlResult<usize>
13  where P: rusqlite::Params
14  {
15    Ok(self.conn.execute(sql, params)?)
16  }
17
18  fn query_first<T, P, F>(&self, sql: &str, params: P, f: F) -> DeriveSqlResult<T>
19  where P: rusqlite::Params,
20        F: FnOnce(&rusqlite::Row<'_>) -> rusqlite::Result<T>
21  {
22    Ok(
23    self.conn.prepare(sql)?
24    .query_row(params, f)?
25    )
26  }
27
28  fn query_map<T, P, F>(&self, sql: &str, params: P, f: F) -> DeriveSqlResult<Vec<T>>
29  where P: rusqlite::Params,
30        F: FnMut(&rusqlite::Row<'_>) -> rusqlite::Result<T>
31  {
32    Ok(
33    self.conn.prepare(sql)?
34    .query_map(params, f)?
35    .collect::<rusqlite::Result<Vec<T>>>()?
36    )
37  }
38}
39