drogue_bazaar/db/postgres/
mod.rs

1//! Basic PostgreSQL support
2
3use crate::core::tls::ClientConfig;
4
5/// A Postgres pooled connection configuration
6#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7pub struct Config {
8    pub db: deadpool_postgres::Config,
9    #[serde(default)]
10    pub tls: ClientConfig,
11}
12
13impl Config {
14    /// Create a pool from a configuration.
15    pub fn create_pool(&self) -> anyhow::Result<deadpool_postgres::Pool> {
16        Ok(self.db.create_pool(
17            Some(deadpool_postgres::Runtime::Tokio1),
18            postgres_native_tls::MakeTlsConnector::new((&self.tls).try_into()?),
19        )?)
20    }
21}