module Database.PostgreSQL.Query.SqlBuilder.Class
       ( ToSqlBuilder(..)
       ) where

import Database.PostgreSQL.Query.SqlBuilder.Builder
import Database.PostgreSQL.Simple.Types

-- | Things which always can be transformed to 'SqlBuilder'
class ToSqlBuilder a where
  toSqlBuilder :: a -> SqlBuilder

instance ToSqlBuilder SqlBuilder where
  toSqlBuilder :: SqlBuilder -> SqlBuilder
toSqlBuilder = SqlBuilder -> SqlBuilder
forall a. a -> a
id

instance ToSqlBuilder Identifier where
  toSqlBuilder :: Identifier -> SqlBuilder
toSqlBuilder Identifier
ident = Identifier -> SqlBuilder
forall a. ToField a => a -> SqlBuilder
mkValue Identifier
ident

instance ToSqlBuilder QualifiedIdentifier where
  toSqlBuilder :: QualifiedIdentifier -> SqlBuilder
toSqlBuilder QualifiedIdentifier
qident = QualifiedIdentifier -> SqlBuilder
forall a. ToField a => a -> SqlBuilder
mkValue QualifiedIdentifier
qident