]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/MIMEType.hs
Reimplement MultipartForm
[Lucu.git] / Network / HTTP / Lucu / MIMEType.hs
index 36cdf0f82797b491783e9fd8ad1cac48fc2848ff..ab0e06596320d343164211017a8725ada3b9f07b 100644 (file)
@@ -3,7 +3,7 @@
   , UnicodeSyntax
   #-}
 
--- |Manipulation of MIME Types.
+-- |MIME Types
 module Network.HTTP.Lucu.MIMEType
     ( MIMEType(..)
     , mkMIMEType
@@ -11,8 +11,8 @@ module Network.HTTP.Lucu.MIMEType
     , parseMIMEType
     , printMIMEType
 
-    , mimeTypeP
-    , mimeTypeListP
+    , mimeType
+    , mimeTypeList
     )
     where
 import Control.Applicative
@@ -27,8 +27,8 @@ import Network.HTTP.Lucu.RFC2231
 import Prelude hiding (min)
 import Prelude.Unicode
 
--- |@'MIMEType' \"major\" \"minor\" [(\"name\", \"value\")]@
--- represents \"major\/minor; name=value\".
+-- |@'MIMEType' \"major\" \"minor\" [(\"name\", \"value\"), ...]@
+-- represents \"major\/minor; name=value; ...\".
 data MIMEType = MIMEType {
       mtMajor  ∷ !CIAscii
     , mtMinor  ∷ !CIAscii
@@ -38,20 +38,21 @@ data MIMEType = MIMEType {
 instance Show MIMEType where
     show = A.toString ∘ A.fromAsciiBuilder ∘ printMIMEType
 
--- |Construct a 'MIMEType' without any parameters.
+-- |@'mkMIMEType' major minor@ returns a 'MIMEType' with the given
+-- @major@ and @minor@ types but without any parameters.
 mkMIMEType ∷ CIAscii → CIAscii → MIMEType
 {-# INLINE mkMIMEType #-}
 mkMIMEType maj min
     = MIMEType maj min (∅)
 
--- |Convert a 'MIMEType' to 'AsciiBuilder'.
+-- |Convert a 'MIMEType' to an 'AsciiBuilder'.
 printMIMEType ∷ MIMEType → AsciiBuilder
 {-# INLINEABLE printMIMEType #-}
 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.
@@ -64,18 +65,20 @@ parseMIMEType str
     where
       p ∷ Parser MIMEType
       {-# INLINE p #-}
-      p = do t ← mimeTypeP
+      p = do t ← mimeType
              endOfInput
              return t
 
-mimeTypeP ∷ Parser MIMEType
-{-# INLINEABLE mimeTypeP #-}
-mimeTypeP = do maj    ← A.toCIAscii <$> token
-               _      ← char '/'
-               min    ← A.toCIAscii <$> token
-               params ← paramsP
-               return $ MIMEType maj min params
+-- |'Parser' for an 'MIMEType'.
+mimeType ∷ Parser MIMEType
+{-# INLINEABLE mimeType #-}
+mimeType = do maj    ← A.toCIAscii <$> token
+              _      ← char '/'
+              min    ← A.toCIAscii <$> token
+              params ← mimeParams
+              return $ MIMEType maj min params
 
-mimeTypeListP ∷ Parser [MIMEType]
-{-# INLINE mimeTypeListP #-}
-mimeTypeListP = listOf mimeTypeP
+-- |'Parser' for a list of 'MIMEType's.
+mimeTypeList ∷ Parser [MIMEType]
+{-# INLINE mimeTypeList #-}
+mimeTypeList = listOf mimeType