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
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 #-}