]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Response.hs
code cleanup
[Lucu.git] / Network / HTTP / Lucu / Response.hs
index cfff8197ddbaea7ea17d3d55be11398f8a76c714..826cc0e0ce5d035e9a5aacd2999f59702366ccd8 100644 (file)
@@ -10,14 +10,18 @@ module Network.HTTP.Lucu.Response
       StatusCode(..)
     , SomeStatusCode(..)
     , Response(..)
+    , statusCodes
     , module Network.HTTP.Lucu.StatusCode
 
       -- * Functions
     , emptyResponse
+    , setStatusCode
     , resCanHaveBody
     , printStatusCode
     , printResponse
 
+    , (≈)
+    , (≉)
     , isInformational
     , isSuccessful
     , isRedirection
@@ -60,16 +64,23 @@ emptyResponse sc
       , resHeaders = (∅)
       }
 
+-- |@'setStatusCode' sc res@ sets the status code of @res@ to @sc@.
+setStatusCode ∷ StatusCode sc ⇒ sc → Response → Response
+setStatusCode sc res
+    = res {
+        resStatus = fromStatusCode sc
+      }
+
 -- |Returns 'True' iff a given 'Response' allows the existence of
 -- response entity body.
 resCanHaveBody ∷ Response → Bool
 {-# INLINEABLE resCanHaveBody #-}
 resCanHaveBody (Response {..})
-    | isInformational resStatus                  = False
-    | toStatusCode resStatus ≡ Just NoContent    = False
-    | toStatusCode resStatus ≡ Just ResetContent = False
-    | toStatusCode resStatus ≡ Just NotModified  = False
-    | otherwise                                  = True
+    | isInformational resStatus = False
+    | resStatus ≈ NoContent     = False
+    | resStatus ≈ ResetContent  = False
+    | resStatus ≈ NotModified   = False
+    | otherwise                 = True
 
 -- |Convert a 'Response' to 'AsciiBuilder'.
 printResponse ∷ Response → AsciiBuilder