{-# OPTIONS_GHC -Wno-orphans #-}
module ClickHaskell.Primitive.TBool where
import ClickHaskell.Primitive.Serialization
import Data.ByteString.Builder (int8)
import Data.Bool ( bool )
import Data.Binary.Get (getInt8)
instance IsChType Bool where
chTypeName :: String
chTypeName = String
"Bool"
defaultValueOfTypeName :: Bool
defaultValueOfTypeName = Bool
False
instance Serializable Bool where
serialize :: ProtocolRevision -> Bool -> Builder
serialize ProtocolRevision
_ = Int8 -> Builder
int8 (Int8 -> Builder) -> (Bool -> Int8) -> Bool -> Builder
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int8 -> Int8 -> Bool -> Int8
forall a. a -> a -> Bool -> a
bool Int8
0 Int8
1
deserialize :: ProtocolRevision -> Get Bool
deserialize ProtocolRevision
_ = (\Int8
int -> case Int8
int of Int8
0->Bool
False; Int8
_->Bool
True) (Int8 -> Bool) -> Get Int8 -> Get Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Get Int8
getInt8
{-# INLINE deserialize #-}
instance ToQueryPart Bool where
toQueryPart :: Bool -> Builder
toQueryPart = Builder -> Builder -> Bool -> Builder
forall a. a -> a -> Bool -> a
bool Builder
"false" Builder
"true"