Expand description

MySQL Async support for Toql

Add this to your Cargo.toml:

[dependencies]
toql = {version = "0.3", features = ["serde"]}
toql_mysql_async = "0.3"

And get your Toql with

use toql_mysql_async::{prelude::MySqlAsync, mysql_async::Pool};
use toql::prelude::Cache;

let database_url = "mysql://USER:PASS@localhost:3306/DATABASE";
let pool = Pool::new(database_url);
let mut conn = pool.get_conn().await?;
let cache = Cache::new();
let mut toql = MySqlAsync::from(conn, &cache);

A transaction can be started from a connection:

use toql_mysql_async::mysql_async::TxOpts;

// let conn = ...
// let cache = ...

let tx_opts = TxOpts::default();
let tx = conn.start_transaction(tx_opts).await?;
let mut toql = MySqlAsync::from(tx, &cache);

License

Toql MySqlAsync is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

Re-exports

pub use mysql_async;
pub use mysql_common::chrono;

Modules

Accessor macro to get a value form a MySQL Row

Backend to implement database specific calls

The error type.

A reimplementation of Queryable that allows calls on Conn and &mut Conn.

A Result type with a ToqlMySqlAsyncError error.

Newtype for MySQL Row type. This allows to implement the conversion trait FromRow for basic data types without violating the orphan rule.

Conversion from [SqlArg] to MySQL query types.

Implementation of [ToqlApi] for MySQL This allows to use all Toql high level functions with this backend.

Macros

Structs