pub struct PoolConfig {
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 after_connect: Option<AfterConnectHook>,
pub before_acquire: Option<BeforeAcquireHook>,
}Expand description
Configuration for the 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 SELECT 1 health probe in recycle().
Defaults to true. Disable for hot paths where the roundtrip cost matters
more than detecting a half-dead connection at acquire time. The pool
still reaps connections via AsyncConnection::is_alive.
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.
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 SELECT 1 health probe.
Defaults to enabled. Disable on hot paths where the roundtrip cost
outweighs the value of catching a dead connection at acquire time.
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
default SELECT 1 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 Freeze for PoolConfig
impl !RefUnwindSafe for PoolConfig
impl Send for PoolConfig
impl Sync for PoolConfig
impl Unpin for PoolConfig
impl UnsafeUnpin for PoolConfig
impl !UnwindSafe 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