{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE UndecidableInstances #-}
module Data.Poseidon where
import GHC.Generics
import Data.Text
import Data.UUID
import Data.Time
import Data.Aeson as A
import Data.ByteString as B
import Data.ByteString.Lazy as BSL
newtype PGText = PGText Text
deriving (Generic, Show)
toText :: PGText -> Text
toText pgText = case pgText of
PGText text' -> text'
newtype PGBool = PGBool Bool
deriving (Generic, Show)
toBool :: PGBool -> Bool
toBool pgBool = case pgBool of
PGBool value' -> value'
newtype PGTimestamp = PGTimestamp UTCTime
deriving (Generic, Show)
toUTCTime :: PGTimestamp -> UTCTime
toUTCTime pgTimestamp = case pgTimestamp of
PGTimestamp value' -> value'
newtype PGUUID = PGUUID UUID
deriving (Generic, Show)
toUUID :: PGUUID -> UUID
toUUID pgUUID = case pgUUID of
PGUUID uuid' -> uuid'
newtype PGJsonValue = PGJsonValue A.Value
deriving (Generic, Show)
toValue :: PGJsonValue -> A.Value
toValue pgJsonValue = case pgJsonValue of
PGJsonValue value' -> value'
newtype PGInteger = PGInteger Integer
deriving (Generic, Show)
toInteger :: PGInteger -> Integer
toInteger pgInteger = case pgInteger of
PGInteger integer' -> integer'
newtype PGDouble = PGDouble Double
deriving (Generic, Show)
toDouble :: PGDouble -> Double
toDouble pgDouble = case pgDouble of
PGDouble integer' -> integer'
newtype PGDecimal = PGDecimal Float
deriving (Generic, Show)
toDecimal :: PGDecimal -> Float
toDecimal pgDecimal = case pgDecimal of
PGDecimal value' -> value'
newtype PGByteString = PGByteString B.ByteString
deriving (Generic, Show)
toByteString :: PGByteString -> B.ByteString
toByteString pgByteString = case pgByteString of
PGByteString value' -> value'
newtype PGLazyByteString = PGLazyByteString BSL.ByteString
deriving (Generic, Show)
toLazyByteString :: PGLazyByteString -> BSL.ByteString
toLazyByteString pgLazyByteString = case pgLazyByteString of
PGLazyByteString value' -> value'