use conn::Conn;
use conn::futures::BatchExec;
use conn::futures::First;
use conn::futures::FirstExec;
use conn::futures::PrepExec;
use conn::futures::Query;
use conn::futures::query_result::BinQueryResult;
use conn::futures::query_result::TextQueryResult;
use conn::transaction::Transaction;
use lib_futures::Map;
mod commit;
mod rollback;
mod start_transaction;
pub mod query_result;
pub use self::commit::Commit;
pub use self::commit::new as new_commit;
pub use self::rollback::Rollback;
pub use self::rollback::new as new_rollback;
pub use self::start_transaction::StartTransaction;
pub use self::start_transaction::new as new_start_transaction;
pub type TransBatchExec = Map<BatchExec, fn(Conn) -> Transaction>;
pub type TransFirst<R> = Map<First<R>, fn((Option<R>, Conn)) -> (Option<R>, Transaction)>;
pub type TransFirstExec<R> = Map<FirstExec<R>, fn((Option<R>, Conn)) -> (Option<R>, Transaction)>;
pub type TransPrepExec = Map<PrepExec,
fn(BinQueryResult) -> self::query_result::TransBinQueryResult>;
pub type TransQuery = Map<Query, fn(TextQueryResult) -> self::query_result::TransTextQueryResult>;