X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FHeaders.hs;fp=Network%2FHTTP%2FLucu%2FHeaders.hs;h=5391743d1163833a1b47b8f10e14ef4edf91e369;hp=e6641154adc1d390b1c7cd35bb4d5d5a4c71342d;hb=90fca0675b1694e69b8e431c989343855cbd125d;hpb=742b0cae221f12eafbf1379b91c473b059efa7d8 diff --git a/Network/HTTP/Lucu/Headers.hs b/Network/HTTP/Lucu/Headers.hs index e664115..5391743 100644 --- a/Network/HTTP/Lucu/Headers.hs +++ b/Network/HTTP/Lucu/Headers.hs @@ -20,12 +20,11 @@ import Control.Monad import Data.Ascii (Ascii, AsciiBuilder, CIAscii) import qualified Data.Ascii as A import Data.Attoparsec.Char8 -import Data.Attoparsec.Parsable -import Data.ByteString (ByteString) import qualified Data.Collections.Newtype.TH as C import Data.Convertible.Base import Data.Convertible.Instances.Ascii () import Data.Convertible.Utils +import Data.Default import Data.List (intersperse) import qualified Data.Map as M (Map) import Data.Collections @@ -139,11 +138,11 @@ deriveAttempts [ ([t| Headers |], [t| Ascii |]) field-value の先頭および末尾にある LWS は全て削除され、それ以外の LWS は單一の SP に變換される。 -} -instance Parsable ByteString Headers where - {-# INLINEABLE parser #-} - parser = do xs ← many header - crlf - return $ fromFoldable xs +instance Default (Parser Headers) where + {-# INLINEABLE def #-} + def = do xs ← many header + crlf + return $ fromFoldable xs where header ∷ Parser (CIAscii, Ascii) {-# INLINEABLE header #-}