conn_ext.rs 701 B

12345678910111213141516171819202122232425
  1. use crate::sqlite::errors::*;
  2. use diesel::{
  3. dsl::sql, expression::SqlLiteral, query_dsl::LoadQuery, Connection, RunQueryDsl, SqliteConnection,
  4. };
  5. pub trait ConnectionExtension: Connection {
  6. fn query<ST, T>(&self, query: &str) -> Result<T>
  7. where
  8. SqlLiteral<ST>: LoadQuery<SqliteConnection, T>;
  9. fn exec(&self, query: impl AsRef<str>) -> Result<usize>;
  10. }
  11. impl ConnectionExtension for SqliteConnection {
  12. fn query<ST, T>(&self, query: &str) -> Result<T>
  13. where
  14. SqlLiteral<ST>: LoadQuery<SqliteConnection, T>,
  15. {
  16. Ok(sql::<ST>(query).get_result(self)?)
  17. }
  18. fn exec(&self, query: impl AsRef<str>) -> Result<usize> {
  19. Ok(SqliteConnection::execute(self, query.as_ref())?)
  20. }
  21. }