sqlx_mysql/
lib.rs

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