Skip to main content

PoolConfig

Struct PoolConfig 

Source
pub struct PoolConfig {
    pub max_size: usize,
    pub min_idle: usize,
    pub create_timeout: Option<Duration>,
    pub idle_timeout: Option<Duration>,
    pub max_lifetime: Option<Duration>,
    pub reap_interval: Option<Duration>,
}
Available on crate feature std only.
Expand description

Tunable limits and lifecycle policy for a Pool.

Construct one through Pool::builder for the fluent path, or assemble it directly — every field is public, so a configuration can equally be deserialized from a settings file. Validation happens when the pool is built, not when the struct is created; see Builder::build.

§Examples

use std::time::Duration;
use pool_mod::PoolConfig;

// Start from the defaults and adjust only what matters.
let cfg = PoolConfig {
    max_size: 16,
    min_idle: 2,
    idle_timeout: Some(Duration::from_secs(300)),
    ..PoolConfig::default()
};

assert_eq!(cfg.max_size, 16);
assert_eq!(cfg.create_timeout, Some(Duration::from_secs(30))); // inherited default

Fields§

§max_size: usize

Hard upper bound on the number of resources the pool owns at once — idle plus checked out. Must be at least 1.

§min_idle: usize

Number of resources to create up front when the pool is built, and the floor the pool keeps ready. Must not exceed max_size.

§create_timeout: Option<Duration>

How long Pool::get waits for a resource when the pool is saturated. None waits indefinitely.

§idle_timeout: Option<Duration>

Discard and replace an idle resource that has gone unused for at least this long, checked the next time it is borrowed. None disables idle expiry.

§max_lifetime: Option<Duration>

Discard and replace a resource older than this, regardless of use, checked the next time it is borrowed. None disables lifetime expiry.

§reap_interval: Option<Duration>

How often a background thread should prune idle resources that have outlived idle_timeout or max_lifetime, rather than waiting for them to be rejected on their next checkout. None (the default) runs no background thread; expiry is then applied lazily, on borrow.

The reaper only prunes — it never creates resources — and has no effect unless idle_timeout or max_lifetime is also set.

Trait Implementations§

Source§

impl Clone for PoolConfig

Source§

fn clone(&self) -> PoolConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PoolConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PoolConfig

Source§

fn default() -> Self

A pool of up to ten resources, created on demand, that waits up to thirty seconds for a free resource, never expires idle or aged resources, and runs no background reaper.

Source§

impl PartialEq for PoolConfig

Source§

fn eq(&self, other: &PoolConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PoolConfig

Source§

impl Eq for PoolConfig

Source§

impl StructuralPartialEq for PoolConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.