packages feed

polysemy-hasql-0.0.1.0: lib/Polysemy/Hasql/Data/ConnectionState.hs

module Polysemy.Hasql.Data.ConnectionState where

import Control.Concurrent (ThreadId)
import Hasql.Connection (Connection)

import Polysemy.Hasql.Data.InitDb (ClientTag)

data ConnectionState =
  ConnectionState {
    count :: Int,
    connection :: Maybe Connection,
    activeCommands :: Map ThreadId Int
  }
  deriving stock (Generic)

instance Default ConnectionState where
  def =
    ConnectionState 0 Nothing mempty

data ConnectionsState =
  ConnectionsState {
    counter :: Integer,
    clientInits :: Map ClientTag Int
  }
  deriving stock (Eq, Show, Generic)