[][src]Crate roa_diesel

This crate provides two context extensions.

AsyncPool

A context extension to access r2d2 pool asynchronously.

use roa_core::{Context, Result};
use diesel::sqlite::SqliteConnection;
use roa_diesel::{Pool, AsyncPool};
use diesel::r2d2::ConnectionManager;

#[derive(Clone)]
struct State(Pool<SqliteConnection>);

impl AsRef<Pool<SqliteConnection>> for State {
    fn as_ref(&self) -> &Pool<SqliteConnection> {
        &self.0
    }
}

async fn get(ctx: Context<State>) -> Result {
    let conn = ctx.get_conn().await?;
    // handle conn
    Ok(())
}

SqlQuery

A context extension to execute diesel dsl asynchronously.

Refer to integration example for more usage.

Enums

WrapError

A wrapper for diesel error and r2d2 error.

Traits

AsyncPool

A context extension to access r2d2 pool asynchronously.

SqlQuery

A context extension to execute diesel dsl asynchronously.

Functions

builder

Create a pool builder.

make_pool

Create a connection pool.

Type Definitions

Pool

An alias for r2d2::Pool<diesel::r2d2::ConnectionManager>.

WrapConnection

An alias for r2d2::PooledConnection<diesel::r2d2::ConnectionManager>.