sqlx_core_guts/mysql/
mod.rs

1//! **MySQL** database driver.
2
3use crate::executor::Executor;
4
5pub mod arguments;
6pub mod collation;
7pub mod column;
8pub mod connection;
9pub mod database;
10pub mod error;
11pub mod io;
12pub mod options;
13pub mod protocol;
14pub mod query_result;
15pub mod row;
16pub mod statement;
17pub mod transaction;
18pub mod type_info;
19pub mod types;
20pub mod value;
21
22#[cfg(feature = "migrate")]
23pub mod migrate;
24
25pub use arguments::MySqlArguments;
26pub use column::MySqlColumn;
27pub use connection::MySqlConnection;
28pub use database::MySql;
29pub use error::MySqlDatabaseError;
30pub use options::{MySqlConnectOptions, MySqlSslMode};
31pub use query_result::MySqlQueryResult;
32pub use row::MySqlRow;
33pub use statement::MySqlStatement;
34pub use transaction::MySqlTransactionManager;
35pub use type_info::MySqlTypeInfo;
36pub use value::{MySqlValue, MySqlValueFormat, MySqlValueRef};
37
38/// An alias for [`Pool`][crate::pool::Pool], specialized for MySQL.
39pub type MySqlPool = crate::pool::Pool<MySql>;
40
41/// An alias for [`PoolOptions`][crate::pool::PoolOptions], specialized for MySQL.
42pub type MySqlPoolOptions = crate::pool::PoolOptions<MySql>;
43
44/// An alias for [`Executor<'_, Database = MySql>`][Executor].
45pub trait MySqlExecutor<'c>: Executor<'c, Database = MySql> {}
46impl<'c, T: Executor<'c, Database = MySql>> MySqlExecutor<'c> for T {}
47
48// NOTE: required due to the lack of lazy normalization
49impl_into_arguments_for_arguments!(MySqlArguments);
50impl_executor_for_pool_connection!(MySql, MySqlConnection, MySqlRow);
51impl_executor_for_transaction!(MySql, MySqlRow);
52impl_acquire!(MySql, MySqlConnection);
53impl_column_index_for_row!(MySqlRow);
54impl_column_index_for_statement!(MySqlStatement);
55impl_into_maybe_pool!(MySql, MySqlConnection);
56
57// required because some databases have a different handling of NULL
58impl_encode_for_option!(MySql);