module Servant.QuickCheck.Internal.Equality where
import Data.Function (on)
import Network.HTTP.Client (Response, responseBody)
import Prelude.Compat
newtype ResponseEquality b
= ResponseEquality { getResponseEquality :: Response b -> Response b -> Bool }
instance Monoid (ResponseEquality b) where
mempty = ResponseEquality $ \_ _ -> True
ResponseEquality a `mappend` ResponseEquality b = ResponseEquality $ \x y ->
a x y && b x y
allEquality :: Eq b => ResponseEquality b
allEquality = ResponseEquality (==)
bodyEquality :: Eq b => ResponseEquality b
bodyEquality = ResponseEquality ((==) `on` responseBody)