]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/HttpVersion.hs
Reimplement MultipartForm
[Lucu.git] / Network / HTTP / Lucu / HttpVersion.hs
index 2029a7facbaf3e5eec5a1bc42201a74e26ff9151..36b6c499b1428e48f9ea4c0c1a383fbeab8f8026 100644 (file)
@@ -6,11 +6,9 @@
 module Network.HTTP.Lucu.HttpVersion
     ( HttpVersion(..)
     , printHttpVersion
-
-    , httpVersionP
+    , httpVersion
     )
     where
-import qualified Blaze.Text.Int as BT
 import Control.Applicative
 import Control.Applicative.Unicode
 import Data.Ascii (AsciiBuilder)
@@ -39,18 +37,15 @@ printHttpVersion v
         -- Optimisation for special cases.
         HttpVersion 1 0 → A.toAsciiBuilder "HTTP/1.0"
         HttpVersion 1 1 → A.toAsciiBuilder "HTTP/1.1"
-        -- General cases.
+        -- General (but almost never stumbling) cases.
         HttpVersion maj min
-            → A.toAsciiBuilder    "HTTP/"           ⊕
-              A.unsafeFromBuilder (BT.integral maj) ⊕
-              A.toAsciiBuilder    "."               ⊕
-              A.unsafeFromBuilder (BT.integral min)
+            → A.toAsciiBuilder "HTTP/" ⊕
+              A.toAsciiBuilder (A.unsafeFromString $ show maj) ⊕
+              A.toAsciiBuilder "." ⊕
+              A.toAsciiBuilder (A.unsafeFromString $ show min)
 
 -- |'Parser' for an 'HttpVersion'.
-httpVersionP ∷ Parser HttpVersion
-httpVersionP = string "HTTP/"
-               *>
-               choice [ string "1.1" *> pure (HttpVersion 1 1)
-                      , string "1.0" *> pure (HttpVersion 1 0)
-                      , HttpVersion <$> decimal ⊛ (char '.' *> decimal)
-                      ]
+httpVersion ∷ Parser HttpVersion
+httpVersion = string "HTTP/"
+              *>
+              (HttpVersion <$> decimal ⊛ (char '.' *> decimal))