Expand description
A generic object and connection pool.
This struct can be cloned and transferred across thread boundaries and uses reference counting for its internal state.
Implementations
sourceimpl<M: Manager, W: From<Object<M>>> Pool<M, W>
impl<M: Manager, W: From<Object<M>>> Pool<M, W>
sourcepub fn new(manager: M, max_size: usize) -> Pool<M, W>
pub fn new(manager: M, max_size: usize) -> Pool<M, W>
Create new connection pool with a given manager
and max_size
.
The manager
is used to create and recycle objects and max_size
is the maximum number of objects ever created.
sourcepub fn from_config(manager: M, config: PoolConfig) -> Pool<M, W>
pub fn from_config(manager: M, config: PoolConfig) -> Pool<M, W>
Create new connection pool with a given manager
and config
.
The manager
is used to create and recycle objects. The config
specifies the maximum numbers of objects to be created and
timeouts.
sourcepub async fn get(&self) -> Result<W, PoolError<M::Error>>
pub async fn get(&self) -> Result<W, PoolError<M::Error>>
Retrieve object from pool or wait for one to become available.
sourcepub async fn try_get(&self) -> Result<W, PoolError<M::Error>>
pub async fn try_get(&self) -> Result<W, PoolError<M::Error>>
Retrieve object from the pool and do not wait if there is currently no object available and the maximum pool size has been reached.
sourcepub async fn timeout_get(
&self,
timeouts: &Timeouts
) -> Result<W, PoolError<M::Error>>
pub async fn timeout_get(
&self,
timeouts: &Timeouts
) -> Result<W, PoolError<M::Error>>
Retrieve object using a different timeout config than the one configured.
Trait Implementations
Auto Trait Implementations
impl<M, W = Object<M>> !RefUnwindSafe for Pool<M, W>
impl<M, W> Send for Pool<M, W> where
M: Send + Sync,
W: Send,
<M as Manager>::Type: Send,
impl<M, W> Sync for Pool<M, W> where
M: Send + Sync,
W: Sync,
<M as Manager>::Type: Send,
impl<M, W> Unpin for Pool<M, W> where
W: Unpin,
impl<M, W = Object<M>> !UnwindSafe for Pool<M, W>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more