]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/MIMEType.hs
code cleanup
[Lucu.git] / Network / HTTP / Lucu / MIMEType.hs
index 4b509bf1e1a25f0d23bff16efc700debde2dcd0b..1aebc9f56b1233b34a75384d6a45db7441125b7c 100644 (file)
@@ -11,8 +11,8 @@ module Network.HTTP.Lucu.MIMEType
     , parseMIMEType
     , printMIMEType
 
-    , mimeTypeP
-    , mimeTypeListP
+    , mimeType
+    , mimeTypeList
     )
     where
 import Control.Applicative
@@ -22,6 +22,7 @@ import Data.Attoparsec.Char8 as P
 import Data.Map (Map)
 import Data.Monoid.Unicode
 import Data.Text (Text)
+import Network.HTTP.Lucu.Parser
 import Network.HTTP.Lucu.Parser.Http
 import Network.HTTP.Lucu.RFC2231
 import Prelude hiding (min)
@@ -52,33 +53,27 @@ printMIMEType (MIMEType maj min params)
     = A.toAsciiBuilder (A.fromCIAscii maj) ⊕
       A.toAsciiBuilder "/" ⊕
       A.toAsciiBuilder (A.fromCIAscii min) ⊕
-      printParams params
+      printMIMEParams params
 
 -- |Parse 'MIMEType' from an 'Ascii'. This function throws an
 -- exception for parse error.
 parseMIMEType ∷ Ascii → MIMEType
 {-# INLINEABLE parseMIMEType #-}
 parseMIMEType str
-    = case parseOnly p $ A.toByteString str of
+    = case parseOnly (finishOff mimeType) $ A.toByteString str of
         Right  t → t
         Left err → error ("unparsable MIME Type: " ⧺ A.toString str ⧺ ": " ⧺ err)
-    where
-      p ∷ Parser MIMEType
-      {-# INLINE p #-}
-      p = do t ← mimeTypeP
-             endOfInput
-             return t
 
 -- |'Parser' for an 'MIMEType'.
-mimeTypeP ∷ Parser MIMEType
-{-# INLINEABLE mimeTypeP #-}
-mimeTypeP = do maj    ← A.toCIAscii <$> token
-               _      ← char '/'
-               min    ← A.toCIAscii <$> token
-               params ← paramsP
-               return $ MIMEType maj min params
+mimeType ∷ Parser MIMEType
+{-# INLINEABLE mimeType #-}
+mimeType = do maj    ← A.toCIAscii <$> token
+              _      ← char '/'
+              min    ← A.toCIAscii <$> token
+              params ← mimeParams
+              return $ MIMEType maj min params
 
 -- |'Parser' for a list of 'MIMEType's.
-mimeTypeListP ∷ Parser [MIMEType]
-{-# INLINE mimeTypeListP #-}
-mimeTypeListP = listOf mimeTypeP
+mimeTypeList ∷ Parser [MIMEType]
+{-# INLINE mimeTypeList #-}
+mimeTypeList = listOf mimeType