cdbc_mysql/
lib.rs

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