Crates.io | miraland-deadpool-sqlite |
lib.rs | miraland-deadpool-sqlite |
version | 0.8.2 |
source | src |
created_at | 2024-09-20 03:21:51.806472 |
updated_at | 2024-09-20 03:21:51.806472 |
description | Miraland patch for deadpool unreleased rev. e6de358 and after which have not been published to crates.io, requird as deps and should exist on crates.io. Dead simple async pool for rusqlite |
homepage | |
repository | https://github.com/bikeshedder/deadpool |
max_upload_size | |
id | 1380881 |
size | 27,535 |
Deadpool is a dead simple async pool for connections and objects of any type.
This crate implements a deadpool
manager for rusqlite
and provides a wrapper that ensures correct use of the connection
inside a separate thread.
Feature | Description | Extra dependencies | Default |
---|---|---|---|
rt_tokio_1 |
Enable support for tokio crate | deadpool/rt_tokio_1 |
yes |
rt_async-std_1 |
Enable support for async-std crate | deadpool/rt_async-std_1 |
no |
serde |
Enable support for serde crate | deadpool/serde , serde/derive |
no |
tracing |
Enable support for tracing by propagating Spans in the interact() calls. Enable this if you use the tracing crate and you want to get useful traces from within interact() calls. |
deadpool-sync/tracing , tracing |
no |
use deadpool_sqlite::{Config, Runtime};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut cfg = Config::new("db.sqlite3");
let pool = cfg.create_pool(Runtime::Tokio1).unwrap();
let conn = pool.get().await.unwrap();
let result: i64 = conn
.interact(|conn| {
let mut stmt = conn.prepare("SELECT 1")?;
let mut rows = stmt.query([])?;
let row = rows.next()?.unwrap();
row.get(0)
})
.await??;
assert_eq!(result, 1);
Ok(())
}
Licensed under either of
at your option.