packages feed

hasql-pool-1.4: src/library/other/Hasql/Pool/Config/Config.hs

module Hasql.Pool.Config.Config where

import Hasql.Connection.Settings qualified as Connection.Settings
import Hasql.Pool.Config.Defaults qualified as Defaults
import Hasql.Pool.Observation (Observation)
import Hasql.Pool.Prelude
import Hasql.Session qualified as Session

-- | Configuration for Hasql connection pool.
data Config = Config
  { size :: Int,
    acquisitionTimeout :: DiffTime,
    agingTimeout :: DiffTime,
    idlenessTimeout :: DiffTime,
    connectionSettingsProvider :: IO Connection.Settings.Settings,
    observationHandler :: Observation -> IO (),
    initSession :: Session.Session ()
  }

-- | Reasonable defaults, which can be built upon.
defaults :: Config
defaults =
  Config
    { size = Defaults.size,
      acquisitionTimeout = Defaults.acquisitionTimeout,
      agingTimeout = Defaults.agingTimeout,
      idlenessTimeout = Defaults.idlenessTimeout,
      connectionSettingsProvider = Defaults.dynamicConnectionSettings,
      observationHandler = Defaults.observationHandler,
      initSession = Defaults.initSession
    }