packages feed

hasql-1.9: library/Hasql/Connection/Config/ConnectionString.hs

module Hasql.Connection.Config.ConnectionString where

import Data.ByteString qualified as B
import Data.Map.Strict qualified as Map
import Data.Text.Encoding qualified
import Hasql.Connection.Config.ConnectionString.Params qualified as Params
import Hasql.Prelude

type ConnectionString = ByteString

class Constructs a where
  construct :: a -> ConnectionString

fromText :: Text -> ConnectionString
fromText = Data.Text.Encoding.encodeUtf8

fromParams :: Params.Params -> ConnectionString
fromParams =
  B.intercalate " " . fmap renderParam . Map.toList
  where
    renderParam (k, v) = mconcat [k, "=", v]