X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FRequest.hs;h=66511e24c1f869490469ea637e0ea763ffd1ec34;hb=72a3e24a952616e32845eeb4fc05048e841c91a2;hp=b690c3e612435844eef847ff8feffbec1b39407e;hpb=e34910f85f459f049b9e6e6b79db9ef95dfccc13;p=Lucu.git diff --git a/Network/HTTP/Lucu/Request.hs b/Network/HTTP/Lucu/Request.hs index b690c3e..66511e2 100644 --- a/Network/HTTP/Lucu/Request.hs +++ b/Network/HTTP/Lucu/Request.hs @@ -1,15 +1,15 @@ {-# LANGUAGE OverloadedStrings , UnicodeSyntax + , ViewPatterns #-} -{-# OPTIONS_HADDOCK prune #-} - -- |Definition of things related on HTTP request. -- -- In general you don't have to use this module directly. module Network.HTTP.Lucu.Request ( Method(..) , Request(..) + , reqMustHaveBody , requestP ) where @@ -48,9 +48,19 @@ data Request deriving (Eq, Show) instance HasHeaders Request where + {-# INLINE getHeaders #-} getHeaders = reqHeaders + {-# INLINE setHeaders #-} setHeaders req hdr = req { reqHeaders = hdr } +-- |Returns 'True' iff the 'Request' must have an entity body. +reqMustHaveBody ∷ Request → Bool +{-# INLINEABLE reqMustHaveBody #-} +reqMustHaveBody (reqMethod → m) + | m ≡ POST = True + | m ≡ PUT = True + | otherwise = False + requestP ∷ Parser Request requestP = do skipMany crlf (method, uri, version) ← requestLineP