pub struct BoundedPool<Resource, Reset> { /* private fields */ }Expand description
A resource pool with a fixed number of Resources.
Implementations§
Source§impl<Resource, Reset> BoundedPool<Resource, Reset>
impl<Resource, Reset> BoundedPool<Resource, Reset>
Sourcepub fn new<F>(pool_size: usize, init_resource: F, reset_resource: Reset) -> Self
pub fn new<F>(pool_size: usize, init_resource: F, reset_resource: Reset) -> Self
Create a new BoundedPool which has the indicated, fixed number of Resources.
Each Resource is immediately initialized, using the provided function.
Whenever a Resource is returned to the pool, reset_resource is run on it first.
Source§impl<Resource: Default, Reset> BoundedPool<Resource, Reset>
impl<Resource: Default, Reset> BoundedPool<Resource, Reset>
Sourcepub fn new_default(pool_size: usize, reset_resource: Reset) -> Selfwhere
Reset: ResetResource<Resource> + Clone,
pub fn new_default(pool_size: usize, reset_resource: Reset) -> Selfwhere
Reset: ResetResource<Resource> + Clone,
Create a new BoundedPool which has the indicated, fixed number of Resources.
Each Resource is immediately initialized to its default value.
Whenever a Resource is returned to the pool, reset_resource is run on it first.
Source§impl<Resource> BoundedPool<Resource, ResetNothing>
impl<Resource> BoundedPool<Resource, ResetNothing>
Sourcepub fn new_without_reset<F>(pool_size: usize, init_resource: F) -> Selfwhere
F: FnMut() -> Resource,
pub fn new_without_reset<F>(pool_size: usize, init_resource: F) -> Selfwhere
F: FnMut() -> Resource,
Create a new BoundedPool which has the indicated, fixed number of Resources.
Each Resource is immediately initialized, using the provided function.
When a Resource is returned to the pool, it is not reset in any way.
Source§impl<Resource: Default> BoundedPool<Resource, ResetNothing>
impl<Resource: Default> BoundedPool<Resource, ResetNothing>
Sourcepub fn new_default_without_reset(pool_size: usize) -> Self
pub fn new_default_without_reset(pool_size: usize) -> Self
Create a new BoundedPool which has the indicated, fixed number of Resources.
Each Resource is immediately initialized to its default value.
When a Resource is returned to the pool, it is not reset in any way.
Source§impl<Resource, Reset: ResetResource<Resource> + Clone> BoundedPool<Resource, Reset>
impl<Resource, Reset: ResetResource<Resource> + Clone> BoundedPool<Resource, Reset>
Sourcepub fn try_get(
&self,
) -> Result<PooledResource<Self, Resource>, ResourcePoolEmpty>
pub fn try_get( &self, ) -> Result<PooledResource<Self, Resource>, ResourcePoolEmpty>
Get a Resource from the pool, if any are available.
Sourcepub fn get(&self) -> PooledResource<Self, Resource>
pub fn get(&self) -> PooledResource<Self, Resource>
Get a Resource from the pool.
§Panics
Panics if no resources are currently available. As BoundedPool is !Send + !Sync, no
resource could ever become available while in the body of this function.
Sourcepub fn pool_size(&self) -> usize
pub fn pool_size(&self) -> usize
Get the total number of Resources in this pool, whether available or in-use.
Sourcepub fn available_resources(&self) -> usize
pub fn available_resources(&self) -> usize
Get the number of Resources in the pool which are not currently being used.
Trait Implementations§
Source§impl<Resource, ResetResource: Clone> Clone for BoundedPool<Resource, ResetResource>
impl<Resource, ResetResource: Clone> Clone for BoundedPool<Resource, ResetResource>
Source§impl<Resource, ResetResource, S> MirroredClone<S> for BoundedPool<Resource, ResetResource>where
ResetResource: MirroredClone<S>,
S: Speed,
Available on crate feature clone-behavior only.
impl<Resource, ResetResource, S> MirroredClone<S> for BoundedPool<Resource, ResetResource>where
ResetResource: MirroredClone<S>,
S: Speed,
clone-behavior only.