]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/MIMEType.hs
Use base64-bytestring instead of dataenc
[Lucu.git] / Network / HTTP / Lucu / MIMEType.hs
index 947cb004cc8fe62c57492decb78de60636d14567..a3f3fc5453ff77ee9436b347da9ee94c46879296 100644 (file)
@@ -1,4 +1,8 @@
--- #prune
+{-# LANGUAGE
+    UnboxedTuples
+  , UnicodeSyntax
+  #-}
+{-# OPTIONS_HADDOCK prune #-}
 
 -- |Manipulation of MIME Types.
 module Network.HTTP.Lucu.MIMEType
@@ -13,6 +17,7 @@ import qualified Data.ByteString.Lazy as B
 import           Network.HTTP.Lucu.Parser
 import           Network.HTTP.Lucu.Parser.Http
 import           Network.HTTP.Lucu.Utils
+import           Prelude hiding (min)
 
 -- |@'MIMEType' \"major\" \"minor\" [(\"name\", \"value\")]@
 -- represents \"major\/minor; name=value\".
@@ -46,27 +51,26 @@ instance Read MIMEType where
 -- exception for parse error.
 parseMIMEType :: String -> MIMEType
 parseMIMEType str = case parseStr mimeTypeP str of
-                      (Success t, r) -> if B.null r then
-                                            t
-                                        else
-                                            error ("unparsable MIME Type: " ++ str)
-                      _              -> error ("unparsable MIME Type: " ++ str)
+                      (# Success t, r #) -> if B.null r
+                                            then t
+                                            else error ("unparsable MIME Type: " ++ str)
+                      (# _        , _ #) -> error ("unparsable MIME Type: " ++ str)
 
 
 mimeTypeP :: Parser MIMEType
 mimeTypeP = allowEOF $!
-            do maj <- token
-               char '/'
-               min <- token
+            do maj    <- token
+               _      <- char '/'
+               min    <- token
                params <- many paramP
                return $ MIMEType maj min params
     where
       paramP :: Parser (String, String)
-      paramP = do many lws
-                  char ';'
-                  many lws
-                  name <- token
-                  char '='
+      paramP = do _     <- many lws
+                  _     <- char ';'
+                  _     <- many lws
+                  name  <- token
+                  _     <- char '='
                   value <- token <|> quotedStr
                   return (name, value)