module Database.PostgreSQL.PQTypes.Binary (
Binary(..)
, unBinary
) where
import Control.Applicative
import Data.Typeable
import qualified Data.ByteString.Char8 as BS
import Database.PostgreSQL.PQTypes.Format
import Database.PostgreSQL.PQTypes.FromSQL
import Database.PostgreSQL.PQTypes.Internal.C.Types
import Database.PostgreSQL.PQTypes.ToSQL
newtype Binary b = Binary b
deriving (Eq, Functor, Ord, Show, Typeable)
unBinary :: Binary b -> b
unBinary (Binary b) = b
instance PQFormat (Binary BS.ByteString) where
pqFormat = const $ BS.pack "%bytea"
instance FromSQL (Binary BS.ByteString) where
type PQBase (Binary BS.ByteString) = PGbytea
fromSQL mbase = Binary <$> fromSQL mbase
instance ToSQL (Binary BS.ByteString) where
type PQDest (Binary BS.ByteString) = PGbytea
toSQL (Binary bs) = toSQL bs