cdbc_mysql/
database.rs

1use cdbc::database::{Database, HasArguments, HasStatement, HasStatementCache, HasValueRef};
2use crate::value::{MySqlValue, MySqlValueRef};
3use crate::{
4    MySqlArguments, MySqlColumn, MySqlConnection, MySqlQueryResult, MySqlRow, MySqlStatement,
5    MySqlTransactionManager, MySqlTypeInfo,
6};
7
8/// MySQL database driver.
9#[derive(Debug)]
10pub struct MySql;
11
12impl Database for MySql {
13    type Connection = MySqlConnection;
14
15    type TransactionManager = MySqlTransactionManager;
16
17    type Row = MySqlRow;
18
19    type QueryResult = MySqlQueryResult;
20
21    type Column = MySqlColumn;
22
23    type TypeInfo = MySqlTypeInfo;
24
25    type Value = MySqlValue;
26
27    fn holder() -> &'static str {
28        "?"
29    }
30}
31
32impl<'r> HasValueRef<'r> for MySql {
33    type Database = MySql;
34
35    type ValueRef = MySqlValueRef<'r>;
36}
37
38impl HasArguments<'_> for MySql {
39    type Database = MySql;
40
41    type Arguments = MySqlArguments;
42
43    type ArgumentBuffer = Vec<u8>;
44}
45
46impl HasStatement for MySql {
47    type Database = MySql;
48
49    type Statement = MySqlStatement;
50}
51
52impl HasStatementCache for MySql {}