{-# LANGUAGE OverloadedStrings #-} module Hasql.Private.Types where -- bytestring-tree-builder import ByteString.TreeBuilder (Builder) -- | A PostgreSQL transaction isolation level data IsolationLevel = ReadCommitted | RepeatableRead | Serializable deriving (Show, Eq) isolationLevelToSQL :: IsolationLevel -> Builder isolationLevelToSQL = \case ReadCommitted -> "READ COMMITTED" RepeatableRead -> "REPEATABLE READ" Serializable -> "SERIALIZABLE" -- | A PostgreSQL transaction mode data Mode = ReadWrite | ReadOnly deriving (Show, Eq) modeToSQL :: Mode -> Builder modeToSQL = \case ReadWrite -> "READ WRITE" ReadOnly -> "READ ONLY" -- | A PostgreSQL transaction deferrability designation data Deferrable = Deferrable | NotDeferrable deriving (Show, Eq) deferrableToSQL :: Deferrable -> Builder deferrableToSQL = \case Deferrable -> "DEFERRABLE" NotDeferrable -> "NOT DEFERRABLE"