{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DerivingStrategies #-}

module Preql.Wire.Types where

import Data.Text (Text)
import Data.Time (TimeOfDay, TimeZone)

data TimeTZ = TimeTZ !TimeOfDay !TimeZone
    deriving (Int -> TimeTZ -> ShowS
[TimeTZ] -> ShowS
TimeTZ -> String
(Int -> TimeTZ -> ShowS)
-> (TimeTZ -> String) -> ([TimeTZ] -> ShowS) -> Show TimeTZ
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TimeTZ] -> ShowS
$cshowList :: [TimeTZ] -> ShowS
show :: TimeTZ -> String
$cshow :: TimeTZ -> String
showsPrec :: Int -> TimeTZ -> ShowS
$cshowsPrec :: Int -> TimeTZ -> ShowS
Show, TimeTZ -> TimeTZ -> Bool
(TimeTZ -> TimeTZ -> Bool)
-> (TimeTZ -> TimeTZ -> Bool) -> Eq TimeTZ
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TimeTZ -> TimeTZ -> Bool
$c/= :: TimeTZ -> TimeTZ -> Bool
== :: TimeTZ -> TimeTZ -> Bool
$c== :: TimeTZ -> TimeTZ -> Bool
Eq)

newtype PgName = PgName Text
    deriving newtype (Int -> PgName -> ShowS
[PgName] -> ShowS
PgName -> String
(Int -> PgName -> ShowS)
-> (PgName -> String) -> ([PgName] -> ShowS) -> Show PgName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PgName] -> ShowS
$cshowList :: [PgName] -> ShowS
show :: PgName -> String
$cshow :: PgName -> String
showsPrec :: Int -> PgName -> ShowS
$cshowsPrec :: Int -> PgName -> ShowS
Show)