X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FRequest.hs;h=853907a479c851c48896705e2b42a2a720c78f83;hb=9668dc27a02b59d7bfb1e9e40af3d2619700ad69;hp=d23dc6331790455b347f26f03371126ed069ee30;hpb=ca338174155913a969808d7b20193973394e474e;p=Lucu.git diff --git a/Network/HTTP/Lucu/Request.hs b/Network/HTTP/Lucu/Request.hs index d23dc63..853907a 100644 --- a/Network/HTTP/Lucu/Request.hs +++ b/Network/HTTP/Lucu/Request.hs @@ -9,7 +9,7 @@ module Network.HTTP.Lucu.Request ( Method(..) , Request(..) - , reqHasBody + , reqMustHaveBody , requestP ) where @@ -25,7 +25,7 @@ import Network.URI import Prelude.Unicode -- |This is the definition of HTTP request methods, which shouldn't --- require any description. +-- require any descriptions. data Method = OPTIONS | GET | HEAD @@ -37,7 +37,7 @@ data Method = OPTIONS | ExtensionMethod !Ascii deriving (Eq, Show) --- |This is the definition of HTTP reqest. +-- |This is the definition of an HTTP reqest. data Request = Request { reqMethod ∷ !Method @@ -48,14 +48,20 @@ 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. -reqHasBody ∷ Request → Bool -reqHasBody (reqMethod → m) - = m ≡ POST ∨ m ≡ PUT +reqMustHaveBody ∷ Request → Bool +{-# INLINEABLE reqMustHaveBody #-} +reqMustHaveBody (reqMethod → m) + | m ≡ POST = True + | m ≡ PUT = True + | otherwise = False +-- |'Parser' for a 'Request'. requestP ∷ Parser Request requestP = do skipMany crlf (method, uri, version) ← requestLineP