1//! This module contains all things that should be reexported
2//! by backend implementations in order to avoid direct dependencies
3//! on the `deadpool` crate itself.
4//!
5//! Crates based on `deadpool::managed` should include this line:
6//! ```rust,ignore
7//! pub use deadpool::managed::reexports::*;
8//! deadpool::managed_reexports!(
9//! "name_of_crate",
10//! Manager,
11//! Object<Manager>,
12//! Error,
13//! ConfigError
14//! );
15//! ```
1617pub use crate::{
18 managed::{Metrics, PoolConfig, Status, Timeouts},
19 Runtime,
20};
2122/// This macro creates all the type aliases usually reexported by
23/// deadpool-* crates. Crates that implement a deadpool manager should
24/// be considered stand alone crates and users of it should not need
25/// to use `deadpool` directly.
26#[macro_export]
27macro_rules! managed_reexports {
28 ($crate_name:literal, $Manager:ty, $Wrapper:ty, $Error:ty, $ConfigError:ty) => {
2930#[doc=concat!("Type alias for using [`deadpool::managed::Pool`] with [`", $crate_name, "`].")]
31pub type Pool = deadpool::managed::Pool<$Manager, $Wrapper>;
3233#[doc=concat!("Type alias for using [`deadpool::managed::PoolBuilder`] with [`", $crate_name, "`].")]
34pub type PoolBuilder = deadpool::managed::PoolBuilder<$Manager, $Wrapper>;
3536#[doc=concat!("Type alias for using [`deadpool::managed::BuildError`] with [`", $crate_name, "`].")]
37pub type BuildError = deadpool::managed::BuildError<$Error>;
3839#[doc=concat!("Type alias for using [`deadpool::managed::CreatePoolError`] with [`", $crate_name, "`].")]
40pub type CreatePoolError = deadpool::managed::CreatePoolError<$ConfigError, $Error>;
4142#[doc=concat!("Type alias for using [`deadpool::managed::PoolError`] with [`", $crate_name, "`].")]
43pub type PoolError = deadpool::managed::PoolError<$Error>;
4445#[doc=concat!("Type alias for using [`deadpool::managed::Object`] with [`", $crate_name, "`].")]
46pub type Object = deadpool::managed::Object<$Manager>;
4748#[doc=concat!("Type alias for using [`deadpool::managed::Hook`] with [`", $crate_name, "`].")]
49pub type Hook = deadpool::managed::Hook<$Manager>;
5051#[doc=concat!("Type alias for using [`deadpool::managed::HookError`] with [`", $crate_name, "`].")]
52pub type HookError = deadpool::managed::HookError<$Error>;
5354#[doc=concat!("Type alias for using [`deadpool::managed::HookErrorCause`] with [`", $crate_name, "`].")]
55pub type HookErrorCause = deadpool::managed::HookErrorCause<$Error>;
5657 };
58}