X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FHeaders.hs;h=06dc8f95f0f2ee2c9aca0c1927b9b049797abc49;hb=72a3e24;hp=3308bbfad7abe200bbc92951c9c8b2618a502839;hpb=ca338174155913a969808d7b20193973394e474e;p=Lucu.git diff --git a/Network/HTTP/Lucu/Headers.hs b/Network/HTTP/Lucu/Headers.hs index 3308bbf..06dc8f9 100644 --- a/Network/HTTP/Lucu/Headers.hs +++ b/Network/HTTP/Lucu/Headers.hs @@ -23,6 +23,7 @@ import Data.Attoparsec.Char8 as P import qualified Data.ByteString as BS import Data.Map (Map) import qualified Data.Map as M +import qualified Data.Map.Unicode as M import Data.Monoid import Data.Monoid.Unicode import Network.HTTP.Lucu.Parser.Http @@ -42,6 +43,12 @@ class HasHeaders a where = case getHeaders a of Headers m → M.lookup key m + hasHeader ∷ CIAscii → a → Bool + {-# INLINE hasHeader #-} + hasHeader key a + = case getHeaders a of + Headers m → key M.∈ m + getCIHeader ∷ CIAscii → a → Maybe CIAscii {-# INLINE getCIHeader #-} getCIHeader key a @@ -127,7 +134,7 @@ headersP = do xs ← P.many header {-# INLINE content #-} content = A.unsafeFromByteString <$> - takeWhile1 (\c → ((¬) (isSPHT c)) ∧ isText c) + takeWhile1 (\c → (¬) (isSPHT c) ∧ isText c) joinValues ∷ [Ascii] → Ascii {-# INLINE joinValues #-}