From 508b43075397a38b45ff2a7c9578f14e8e4dad30 Mon Sep 17 00:00:00 2001 From: Colin Maxfield Date: Sat, 28 Dec 2019 16:36:56 -0500 Subject: [PATCH] Adding generic for execute function for genericconnection --- postgres/src/client.rs | 5 ++++- postgres/src/generic_connection.rs | 4 +++- postgres/src/transaction.rs | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) 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>