#![allow(clippy::needless_doctest_main)]
pub use aykroyd;
pub use mysql;
pub use r2d2;
use aykroyd::mysql::{Client, Error};
use r2d2::ManageConnection;
#[derive(Debug)]
pub struct AykroydConnectionManager {
inner: r2d2_mysql::MySqlConnectionManager,
}
impl AykroydConnectionManager {
pub fn new(params: mysql::OptsBuilder) -> AykroydConnectionManager {
let inner = r2d2_mysql::MySqlConnectionManager::new(params);
AykroydConnectionManager { inner }
}
}
impl ManageConnection for AykroydConnectionManager {
type Connection = Client;
type Error = Error;
fn connect(&self) -> Result<Client, Error> {
let client = self.inner.connect().map_err(Error::connect)?;
Ok(Client::from(client))
}
fn is_valid(&self, client: &mut Client) -> Result<(), Error> {
self.inner.is_valid(client.as_mut()).map_err(Error::connect)
}
fn has_broken(&self, client: &mut Client) -> bool {
self.inner.has_broken(client.as_mut())
}
}