diff --git a/postgres/src/client.rs b/postgres/src/client.rs index e513e51e..e9a03ceb 100644 --- a/postgres/src/client.rs +++ b/postgres/src/client.rs @@ -455,7 +455,10 @@ impl Client { } impl GenericConnection for Client { - fn execute(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result { + fn execute(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result + where + T: ?Sized + ToStatement, + { self.execute(query, params) } fn query(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result, Error> diff --git a/postgres/src/generic_connection.rs b/postgres/src/generic_connection.rs index a25b283b..3a8e6788 100644 --- a/postgres/src/generic_connection.rs +++ b/postgres/src/generic_connection.rs @@ -5,7 +5,9 @@ use tokio_postgres::{Error, Row}; /// A trait allowing abstraction over connections and transactions pub trait GenericConnection { /// Like `Client::execute`. - fn execute(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result; + fn execute(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result + where + T: ?Sized + ToStatement; /// Like `Client::query`. fn query(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result, Error> diff --git a/postgres/src/transaction.rs b/postgres/src/transaction.rs index de49489a..98b6bff5 100644 --- a/postgres/src/transaction.rs +++ b/postgres/src/transaction.rs @@ -181,7 +181,10 @@ impl<'a> Transaction<'a> { } impl<'a> GenericConnection for Transaction<'a> { - fn execute(&mut self, query: &str, params: &[&(dyn ToSql + Sync)]) -> Result { + fn execute(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result + where + T: ?Sized + ToStatement, + { self.execute(query, params) } fn query(&mut self, query: &T, params: &[&(dyn ToSql + Sync)]) -> Result, Error>