pub struct PoolConfig {Show 16 fields
pub endpoint: String,
pub database: String,
pub create_mode: CreateMode,
pub user: Option<String>,
pub password: Option<String>,
pub max_size: usize,
pub health_check: bool,
pub recycle: RecycleStrategy,
pub wait_timeout: Option<Duration>,
pub create_timeout: Option<Duration>,
pub recycle_timeout: Option<Duration>,
pub max_lifetime: Option<Duration>,
pub idle_timeout: Option<Duration>,
pub min_idle: Option<u32>,
pub after_connect: Option<AfterConnectHook>,
pub before_acquire: Option<BeforeAcquireHook>,
}Expand description
Configuration for the async connection pool.
Fields§
§endpoint: StringServer endpoint (e.g., “localhost:7483” or “http://localhost:7484”)
database: StringDatabase path
create_mode: CreateModeDatabase creation mode (only used for first connection)
user: Option<String>Optional username for authentication
password: Option<String>Optional password for authentication
max_size: usizeMaximum number of connections in the pool
health_check: boolIf false, skip the per-checkout health probe. Retained for backwards
compatibility — it is kept in sync with recycle by the
health_check and recycle
builders. Prefer setting recycle directly.
recycle: RecycleStrategyStrategy used to validate connections on checkout. Defaults to
RecycleStrategy::SelectOne.
wait_timeout: Option<Duration>Maximum time to wait for a slot to become available on
get. None waits indefinitely (the default).
create_timeout: Option<Duration>Maximum time to wait for a new connection to be created. None disables
the cap (the default).
recycle_timeout: Option<Duration>Maximum time to wait for the recycle probe to complete. None disables
the cap (the default).
max_lifetime: Option<Duration>Maximum lifetime of a physical connection before it is retired at
checkout, regardless of health. None disables the cap (the default).
idle_timeout: Option<Duration>Maximum time a connection may sit idle before it is retired at checkout.
None disables the cap (the default).
min_idle: Option<u32>Minimum number of idle connections to keep warm (not eagerly created;
used to bias eviction decisions). None means no floor (the default).
after_connect: Option<AfterConnectHook>Optional hook run on every newly-opened connection (see AfterConnectHook).
before_acquire: Option<BeforeAcquireHook>Optional hook run on every checkout (see BeforeAcquireHook).
Implementations§
Source§impl PoolConfig
impl PoolConfig
Sourcepub fn new(endpoint: impl Into<String>, database: impl Into<String>) -> Self
pub fn new(endpoint: impl Into<String>, database: impl Into<String>) -> Self
Creates a new pool configuration.
All optional knobs default to None/disabled and recycle defaults to
RecycleStrategy::SelectOne, so a config that sets only
endpoint/database/max_size behaves identically to prior versions.
Sourcepub fn create_mode(self, mode: CreateMode) -> Self
pub fn create_mode(self, mode: CreateMode) -> Self
Sets the database creation mode.
Sourcepub fn auth(self, user: impl Into<String>, password: impl Into<String>) -> Self
pub fn auth(self, user: impl Into<String>, password: impl Into<String>) -> Self
Sets authentication credentials.
Sourcepub fn health_check(self, enabled: bool) -> Self
pub fn health_check(self, enabled: bool) -> Self
Enables or disables the per-checkout health probe.
Backwards-compatible shorthand for recycle: true
selects RecycleStrategy::SelectOne, false selects
RecycleStrategy::None. Prefer recycle for finer control.
Sourcepub fn recycle(self, strategy: RecycleStrategy) -> Self
pub fn recycle(self, strategy: RecycleStrategy) -> Self
Sets the per-checkout recycle strategy. Keeps the legacy
health_check flag in sync (false iff the
strategy is RecycleStrategy::None).
Sourcepub fn wait_timeout(self, timeout: Option<Duration>) -> Self
pub fn wait_timeout(self, timeout: Option<Duration>) -> Self
Sets the maximum time to wait for an available slot on get.
Sourcepub fn create_timeout(self, timeout: Option<Duration>) -> Self
pub fn create_timeout(self, timeout: Option<Duration>) -> Self
Sets the maximum time to wait for a new connection to be created.
Sourcepub fn recycle_timeout(self, timeout: Option<Duration>) -> Self
pub fn recycle_timeout(self, timeout: Option<Duration>) -> Self
Sets the maximum time to wait for the recycle probe to complete.
Sourcepub fn max_lifetime(self, lifetime: Option<Duration>) -> Self
pub fn max_lifetime(self, lifetime: Option<Duration>) -> Self
Sets the maximum lifetime of a physical connection.
Sourcepub fn idle_timeout(self, timeout: Option<Duration>) -> Self
pub fn idle_timeout(self, timeout: Option<Duration>) -> Self
Sets the maximum idle time before a connection is retired at checkout.
Sourcepub fn min_idle(self, min_idle: Option<u32>) -> Self
pub fn min_idle(self, min_idle: Option<u32>) -> Self
Sets the minimum number of idle connections to keep warm.
Sourcepub fn after_connect<F>(self, hook: F) -> Self
pub fn after_connect<F>(self, hook: F) -> Self
Installs a hook that runs on every newly-opened connection.
Use this to apply session-level setup (e.g. SET search_path, install
prepared statements). The hook is called once per physical connection,
not per checkout.
Sourcepub fn before_acquire<F>(self, hook: F) -> Self
pub fn before_acquire<F>(self, hook: F) -> Self
Installs a hook that runs on every connection checkout, before the connection is handed to the caller.
Returning Err from the hook evicts the connection from the pool;
the caller’s pool.get() then retries with another connection or
builds a new one. Use this for per-acquire health checks beyond the
configured recycle probe (e.g. validating session state).
Trait Implementations§
Source§impl Clone for PoolConfig
impl Clone for PoolConfig
Source§fn clone(&self) -> PoolConfig
fn clone(&self) -> PoolConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for PoolConfig
impl !UnwindSafe for PoolConfig
impl Freeze for PoolConfig
impl Send for PoolConfig
impl Sync for PoolConfig
impl Unpin for PoolConfig
impl UnsafeUnpin for PoolConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request