1#![cfg_attr(
6 feature = "postgres",
7 doc = r##"
8
9An example of the `postgres` client.
10
11```no_run
12use std::thread;
13use postgres::NoTls;
14use r2d2_aykroyd::postgres::AykroydConnectionManager;
15
16#[derive(aykroyd::QueryOne)]
17#[aykroyd(row(Row), text = "SELECT 1 + $1")]
18struct AddOneTo(i32);
19
20#[derive(aykroyd::FromRow)]
21struct Row(i32);
22
23fn main() {
24 let manager = AykroydConnectionManager::new(
25 "host=localhost user=postgres".parse().unwrap(),
26 NoTls,
27 );
28 let pool = r2d2::Pool::new(manager).unwrap();
29
30 for i in 0..10i32 {
31 let pool = pool.clone();
32 thread::spawn(move || {
33 let mut client = pool.get().unwrap();
34 let row = client.query_one(&AddOneTo(i)).unwrap();
35 let value = row.0;
36 assert_eq!(value, i + 1);
37 });
38 }
39}
40```
41"##)]
42#![cfg_attr(
43 feature = "mysql",
44 doc = r##"
45
46An example of the `mysql` client.
47
48```no_run
49use std::thread;
50use r2d2_aykroyd::mysql::AykroydConnectionManager;
51
52#[derive(aykroyd::QueryOne)]
53#[aykroyd(row(Row), text = "SELECT 1 + ?")]
54struct AddOneTo(i32);
55
56#[derive(aykroyd::FromRow)]
57struct Row(i32);
58
59fn main() {
60 let opts = mysql::Opts::from_url(
61 "mysql://user:password@locahost:3307/db_name",
62 ).unwrap();
63 let builder = mysql::OptsBuilder::from_opts(opts);
64 let manager = AykroydConnectionManager::new(builder);
65 let pool = r2d2::Pool::new(manager).unwrap();
66
67 for i in 0..10i32 {
68 let pool = pool.clone();
69 thread::spawn(move || {
70 let mut client = pool.get().unwrap();
71 let row = client.query_one(&AddOneTo(i)).unwrap();
72 let value = row.0;
73 assert_eq!(value, i + 1);
74 });
75 }
76}
77```
78"##)]
79#![cfg_attr(
80 feature = "rusqlite",
81 doc = r##"
82
83An example of the `rusqlite` client.
84
85```no_run
86use std::thread;
87use r2d2_aykroyd::rusqlite::AykroydConnectionManager;
88
89#[derive(aykroyd::QueryOne)]
90#[aykroyd(row(Row), text = "SELECT 1 + $1")]
91struct AddOneTo(i32);
92
93#[derive(aykroyd::FromRow)]
94struct Row(i32);
95
96fn main() {
97 let manager = AykroydConnectionManager::file("file.db");
98 let pool = r2d2::Pool::new(manager).unwrap();
99
100 for i in 0..10i32 {
101 let pool = pool.clone();
102 thread::spawn(move || {
103 let mut client = pool.get().unwrap();
104 let row = client.query_one(&AddOneTo(i)).unwrap();
105 let value = row.0;
106 assert_eq!(value, i + 1);
107 });
108 }
109}
110```
111"##)]
112#![deny(missing_docs, missing_debug_implementations)]
113#![cfg_attr(docsrs, feature(doc_cfg))]
114
115#[cfg(feature = "mysql")]
116#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
117pub mod mysql;
118
119#[cfg(feature = "postgres")]
120#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
121pub mod postgres;
122
123#[cfg(feature = "rusqlite")]
124#[cfg_attr(docsrs, doc(cfg(feature = "rusqlite")))]
125pub mod rusqlite;