diff --git a/postgres/src/client.rs b/postgres/src/client.rs index b24a568a..e513e51e 100644 --- a/postgres/src/client.rs +++ b/postgres/src/client.rs @@ -458,7 +458,10 @@ impl GenericConnection for Client { fn execute(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result { self.execute(query, params) } - fn query(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result, Error> { + fn query(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result, Error> + where + T: ?Sized + ToStatement, + { self.query(query, params) } fn prepare(&mut self, query: &str) -> Result { diff --git a/postgres/src/generic_connection.rs b/postgres/src/generic_connection.rs index 47df4c20..a25b283b 100644 --- a/postgres/src/generic_connection.rs +++ b/postgres/src/generic_connection.rs @@ -1,4 +1,4 @@ -use crate::{Statement, Transaction}; +use crate::{Statement, ToStatement, Transaction}; use tokio_postgres::types::ToSql; use tokio_postgres::{Error, Row}; @@ -8,7 +8,9 @@ pub trait GenericConnection { fn execute(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result; /// Like `Client::query`. - fn query(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result, Error>; + fn query(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result, Error> + where + T: ?Sized + ToStatement; /// Like `Client::prepare`. fn prepare(&mut self, query: &str) -> Result; diff --git a/postgres/src/transaction.rs b/postgres/src/transaction.rs index c5639387..de49489a 100644 --- a/postgres/src/transaction.rs +++ b/postgres/src/transaction.rs @@ -184,7 +184,10 @@ impl<'a> GenericConnection for Transaction<'a> { fn execute(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result { self.execute(query, params) } - fn query(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result, Error> { + fn query(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result, Error> + where + T: ?Sized + ToStatement, + { self.query(query, params) } fn prepare(&mut self, query: &str) -> Result {