Struct deadpool_postgres::Config
source · pub struct Config {Show 21 fields
pub url: Option<String>,
pub user: Option<String>,
pub password: Option<String>,
pub dbname: Option<String>,
pub options: Option<String>,
pub application_name: Option<String>,
pub ssl_mode: Option<SslMode>,
pub host: Option<String>,
pub hosts: Option<Vec<String>>,
pub hostaddr: Option<IpAddr>,
pub hostaddrs: Option<Vec<IpAddr>>,
pub port: Option<u16>,
pub ports: Option<Vec<u16>>,
pub connect_timeout: Option<Duration>,
pub keepalives: Option<bool>,
pub keepalives_idle: Option<Duration>,
pub target_session_attrs: Option<TargetSessionAttrs>,
pub channel_binding: Option<ChannelBinding>,
pub load_balance_hosts: Option<LoadBalanceHosts>,
pub manager: Option<ManagerConfig>,
pub pool: Option<PoolConfig>,
}
Expand description
Configuration object.
§Example (from environment)
By enabling the serde
feature you can read the configuration using the
config
crate as following:
PG__HOST=pg.example.com
PG__USER=john_doe
PG__PASSWORD=topsecret
PG__DBNAME=example
PG__POOL__MAX_SIZE=16
PG__POOL__TIMEOUTS__WAIT__SECS=5
PG__POOL__TIMEOUTS__WAIT__NANOS=0
#[derive(serde::Deserialize, serde::Serialize)]
struct Config {
pg: deadpool_postgres::Config,
}
impl Config {
pub fn from_env() -> Result<Self, config::ConfigError> {
let mut cfg = config::Config::builder()
.add_source(config::Environment::default().separator("__"))
.build()?;
cfg.try_deserialize()
}
}
Fields§
§url: Option<String>
Initialize the configuration by parsing the URL first.
Note: All the other options override settings defined
by the URL except for the host
and hosts
options which
are additive!
user: Option<String>
§password: Option<String>
§dbname: Option<String>
§options: Option<String>
§application_name: Option<String>
§ssl_mode: Option<SslMode>
§host: Option<String>
This is similar to Config::hosts
but only allows one host to be
specified.
Unlike tokio_postgres::Config
this structure differentiates between
one host and more than one host. This makes it possible to store this
configuration in an environment variable.
hosts: Option<Vec<String>>
§hostaddr: Option<IpAddr>
§hostaddrs: Option<Vec<IpAddr>>
§port: Option<u16>
This is similar to Config::ports
but only allows one port to be
specified.
Unlike tokio_postgres::Config
this structure differentiates between
one port and more than one port. This makes it possible to store this
configuration in an environment variable.
ports: Option<Vec<u16>>
§connect_timeout: Option<Duration>
§keepalives: Option<bool>
§keepalives_idle: Option<Duration>
§target_session_attrs: Option<TargetSessionAttrs>
§channel_binding: Option<ChannelBinding>
§load_balance_hosts: Option<LoadBalanceHosts>
§manager: Option<ManagerConfig>
Manager
configuration.
pool: Option<PoolConfig>
Pool
configuration.
Implementations§
source§impl Config
impl Config
sourcepub fn new() -> Self
pub fn new() -> Self
Create a new Config
instance with default values. This function is
identical to Config::default()
.
sourcepub fn create_pool<T>(
&self,
runtime: Option<Runtime>,
tls: T
) -> Result<Pool, CreatePoolError>where
T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
T::Stream: Sync + Send,
T::TlsConnect: Sync + Send,
<T::TlsConnect as TlsConnect<Socket>>::Future: Send,
pub fn create_pool<T>(
&self,
runtime: Option<Runtime>,
tls: T
) -> Result<Pool, CreatePoolError>where
T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
T::Stream: Sync + Send,
T::TlsConnect: Sync + Send,
<T::TlsConnect as TlsConnect<Socket>>::Future: Send,
sourcepub fn builder<T>(&self, tls: T) -> Result<PoolBuilder, ConfigError>where
T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
T::Stream: Sync + Send,
T::TlsConnect: Sync + Send,
<T::TlsConnect as TlsConnect<Socket>>::Future: Send,
pub fn builder<T>(&self, tls: T) -> Result<PoolBuilder, ConfigError>where
T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
T::Stream: Sync + Send,
T::TlsConnect: Sync + Send,
<T::TlsConnect as TlsConnect<Socket>>::Future: Send,
Creates a new PoolBuilder
using this Config
.
§Errors
See ConfigError
and tokio_postgres::Error
for details.
sourcepub fn get_pg_config(&self) -> Result<Config, ConfigError>
pub fn get_pg_config(&self) -> Result<Config, ConfigError>
Returns tokio_postgres::Config
which can be used to connect to
the database.
sourcepub fn get_manager_config(&self) -> ManagerConfig
pub fn get_manager_config(&self) -> ManagerConfig
Returns ManagerConfig
which can be used to construct a
deadpool::managed::Pool
instance.
sourcepub fn get_pool_config(&self) -> PoolConfig
pub fn get_pool_config(&self) -> PoolConfig
Returns deadpool::managed::PoolConfig
which can be used to construct
a deadpool::managed::Pool
instance.