module Database.MySQL.Simple.Types
(
Null(..)
, Only(..)
, Query(..)
) where
import Control.Arrow
import Control.DeepSeq (NFData)
import Blaze.ByteString.Builder
import Data.String (IsString(..))
import qualified Blaze.ByteString.Builder.Char.Utf8 as Utf8
import Data.ByteString (ByteString)
data Null = Null
newtype Query = Query {
fromQuery :: ByteString
} deriving (Eq, Ord)
instance Show Query where
show = show . fromQuery
instance Read Query where
readsPrec i = fmap (first Query) . readsPrec i
instance IsString Query where
fromString = Query . toByteString . Utf8.fromString
newtype Only a = Only a
deriving (Eq, Ord, Read, Show, NFData)