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.

See tokio_postgres::Config::host.

§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.

See tokio_postgres::Config::port.

§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

source

pub fn new() -> Self

Create a new Config instance with default values. This function is identical to Config::default().

source

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,

Creates a new Pool using this Config.

§Errors

See CreatePoolError for details.

source

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.

source

pub fn get_pg_config(&self) -> Result<Config, ConfigError>

Returns tokio_postgres::Config which can be used to connect to the database.

source

pub fn get_manager_config(&self) -> ManagerConfig

Returns ManagerConfig which can be used to construct a deadpool::managed::Pool instance.

source

pub fn get_pool_config(&self) -> PoolConfig

Returns deadpool::managed::PoolConfig which can be used to construct a deadpool::managed::Pool instance.

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Config

source§

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

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

impl Default for Config

source§

fn default() -> Config

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Config

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Config

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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>,

§

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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,