use crate::executor::Executor;
pub mod arguments;
pub mod collation;
pub mod column;
pub mod connection;
pub mod database;
pub mod error;
pub mod io;
pub mod options;
pub mod protocol;
pub mod query_result;
pub mod row;
pub mod statement;
pub mod transaction;
pub mod type_info;
pub mod types;
pub mod value;
#[cfg(feature = "migrate")]
pub mod migrate;
pub use arguments::MySqlArguments;
pub use column::MySqlColumn;
pub use connection::MySqlConnection;
pub use database::MySql;
pub use error::MySqlDatabaseError;
pub use options::{MySqlConnectOptions, MySqlSslMode};
pub use query_result::MySqlQueryResult;
pub use row::MySqlRow;
pub use statement::MySqlStatement;
pub use transaction::MySqlTransactionManager;
pub use type_info::MySqlTypeInfo;
pub use value::{MySqlValue, MySqlValueFormat, MySqlValueRef};
pub type MySqlPool = crate::pool::Pool<MySql>;
pub type MySqlPoolOptions = crate::pool::PoolOptions<MySql>;
pub trait MySqlExecutor<'c>: Executor<'c, Database = MySql> {}
impl<'c, T: Executor<'c, Database = MySql>> MySqlExecutor<'c> for T {}
impl_into_arguments_for_arguments!(MySqlArguments);
impl_executor_for_pool_connection!(MySql, MySqlConnection, MySqlRow);
impl_executor_for_transaction!(MySql, MySqlRow);
impl_acquire!(MySql, MySqlConnection);
impl_column_index_for_row!(MySqlRow);
impl_column_index_for_statement!(MySqlStatement);
impl_into_maybe_pool!(MySql, MySqlConnection);
impl_encode_for_option!(MySql);