1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//! Managed version of the pool.
//!
//! "Managed" means that it requires a [`Manager`] which is responsible for
//! creating and recycling objects as they are needed.
//!
//! # Example
//!
//! ```rust
//! use deadpool::managed;
//!
//! #[derive(Debug)]
//! enum Error { Fail }
//!
//! struct Computer {}
//!
//! impl Computer {
//! async fn get_answer(&self) -> i32 {
//! 42
//! }
//! }
//!
//! struct Manager {}
//!
//! impl managed::Manager for Manager {
//! type Type = Computer;
//! type Error = Error;
//!
//! async fn create(&self) -> Result<Computer, Error> {
//! Ok(Computer {})
//! }
//! async fn recycle(&self, conn: &mut Computer, _: &managed::Metrics) -> managed::RecycleResult<Error> {
//! Ok(())
//! }
//! }
//!
//! type Pool = managed::Pool<Manager>;
//!
//! #[tokio::main]
//! async fn main() {
//! let mgr = Manager {};
//! let pool = Pool::builder(mgr).max_size(16).build().unwrap();
//! let mut conn = pool.get().await.unwrap();
//! let answer = conn.get_answer().await;
//! assert_eq!(answer, 42);
//! }
//! ```
//!
//! For a more complete example please see
//! [`deadpool-postgres`](https://crates.io/crates/deadpool-postgres) crate.
pub use crateStatus;
pub use ;