{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-} -- | -- Module : Database.HDBC.Record.TH -- Copyright : 2013 Kei Hibino -- License : BSD3 -- -- Maintainer : ex8k.hibino@gmail.com -- Stability : experimental -- Portability : unknown -- -- This module provides DB-record templates depends on HDBC. module Database.HDBC.Record.TH ( derivePersistableInstanceFromValue, ) where import Language.Haskell.TH (Q, Dec, Type) import Database.HDBC (SqlValue) import Database.HDBC.SqlValueExtra () import Database.Record (FromSql(..), valueFromSql, ToSql(..), valueToSql) -- | Template to declare HDBC instances of DB-record against single value type. derivePersistableInstanceFromValue :: Q Type -- ^ Type to implement instances -> Q [Dec] -- ^ Result declarations derivePersistableInstanceFromValue typ = [d| instance FromSql SqlValue $(typ) where recordFromSql = valueFromSql instance ToSql SqlValue $(typ) where recordToSql = valueToSql |]