#![cfg(feature = "postgres-live")]
use postgres::types::ToSql;
pub trait PgConn {
fn execute(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<u64, postgres::Error>;
fn query(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<Vec<postgres::Row>, postgres::Error>;
fn query_opt(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<Option<postgres::Row>, postgres::Error>;
}
impl PgConn for postgres::Client {
fn execute(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<u64, postgres::Error> {
postgres::Client::execute(self, sql, params)
}
fn query(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<Vec<postgres::Row>, postgres::Error> {
postgres::Client::query(self, sql, params)
}
fn query_opt(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<Option<postgres::Row>, postgres::Error> {
postgres::Client::query_opt(self, sql, params)
}
}
impl<'a> PgConn for postgres::Transaction<'a> {
fn execute(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<u64, postgres::Error> {
postgres::Transaction::execute(self, sql, params)
}
fn query(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<Vec<postgres::Row>, postgres::Error> {
postgres::Transaction::query(self, sql, params)
}
fn query_opt(
&mut self,
sql: &str,
params: &[&(dyn ToSql + Sync)],
) -> Result<Option<postgres::Row>, postgres::Error> {
postgres::Transaction::query_opt(self, sql, params)
}
}