use crate::types::ToSql; use crate::{Error, Row, Statement, ToStatement, Transaction}; /// A trait allowing abstraction over connections and transactions. pub trait GenericClient { /// Like `Client::execute`. 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> where T: ?Sized + ToStatement; /// Like `Client::prepare`. fn prepare(&mut self, query: &str) -> Result; /// Like `Client::transaction`. fn transaction(&mut self) -> Result, Error>; }