{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeApplications #-} module HaskellWorks.Data.Uri.Status ( Status(..) , fromHttpStatus ) where import Control.DeepSeq import Data.ByteString (ByteString) import Data.Typeable import GHC.Generics import qualified Network.HTTP.Types.Status as HTTP data Status = Status { statusCode :: Int , statusMessage :: ByteString } deriving (Show, Typeable, Generic, NFData) instance Eq Status where Status { statusCode = a } == Status { statusCode = b } = a == b instance Ord Status where compare Status { statusCode = a } Status { statusCode = b } = a `compare` b fromHttpStatus :: HTTP.Status -> Status fromHttpStatus s = Status { statusCode = HTTP.statusCode s , statusMessage = HTTP.statusMessage s }