]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/MIMEType.hs
Haddock overhaul
[Lucu.git] / Network / HTTP / Lucu / MIMEType.hs
index fdc112c7eea12ac560492795616b66f446c18faa..4b509bf1e1a25f0d23bff16efc700debde2dcd0b 100644 (file)
@@ -3,7 +3,7 @@
   , UnicodeSyntax
   #-}
 
--- |Manipulation of MIME Types.
+-- |MIME Types
 module Network.HTTP.Lucu.MIMEType
     ( MIMEType(..)
     , mkMIMEType
@@ -27,21 +27,25 @@ 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
     , mtParams ∷ !(Map CIAscii Text)
-    } deriving (Eq, Show)
+    } deriving (Eq)
 
--- |Construct a 'MIMEType' without any parameters.
+instance Show MIMEType where
+    show = A.toString ∘ A.fromAsciiBuilder ∘ printMIMEType
+
+-- |@'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)
@@ -65,6 +69,7 @@ parseMIMEType str
              endOfInput
              return t
 
+-- |'Parser' for an 'MIMEType'.
 mimeTypeP ∷ Parser MIMEType
 {-# INLINEABLE mimeTypeP #-}
 mimeTypeP = do maj    ← A.toCIAscii <$> token
@@ -73,6 +78,7 @@ mimeTypeP = do maj    ← A.toCIAscii <$> token
                params ← paramsP
                return $ MIMEType maj min params
 
+-- |'Parser' for a list of 'MIMEType's.
 mimeTypeListP ∷ Parser [MIMEType]
 {-# INLINE mimeTypeListP #-}
 mimeTypeListP = listOf mimeTypeP