]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/HttpVersion.hs
Haddock overhaul
[Lucu.git] / Network / HTTP / Lucu / HttpVersion.hs
index 9ad1c0a07ccd964d9cdcee554ff604a5c558856d..2029a7facbaf3e5eec5a1bc42201a74e26ff9151 100644 (file)
@@ -2,11 +2,12 @@
     OverloadedStrings
   , UnicodeSyntax
   #-}
--- |Manipulation of HTTP version string.
+-- |HTTP version number
 module Network.HTTP.Lucu.HttpVersion
     ( HttpVersion(..)
-    , httpVersionP
     , printHttpVersion
+
+    , httpVersionP
     )
     where
 import qualified Blaze.Text.Int as BT
@@ -18,7 +19,7 @@ import Data.Attoparsec.Char8
 import Data.Monoid.Unicode
 import Prelude hiding (min)
 
--- |@'HttpVersion' major minor@ represents \"HTTP\/major.minor\".
+-- |An HTTP version consists of major and minor versions.
 data HttpVersion
     = HttpVersion !Int !Int
       deriving (Eq, Show)
@@ -31,24 +32,25 @@ instance Ord HttpVersion where
         | minA < minB = LT
         | otherwise   = EQ
 
-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)
-                      ]
-
 -- |Convert an 'HttpVersion' to 'AsciiBuilder'.
 printHttpVersion ∷ HttpVersion → AsciiBuilder
 printHttpVersion v
     = case v of
-        -- 頻出するので高速化
+        -- Optimisation for special cases.
         HttpVersion 1 0 → A.toAsciiBuilder "HTTP/1.0"
         HttpVersion 1 1 → A.toAsciiBuilder "HTTP/1.1"
-        -- 一般の場合
+        -- General cases.
         HttpVersion maj min
             → A.toAsciiBuilder    "HTTP/"           ⊕
               A.unsafeFromBuilder (BT.integral maj) ⊕
               A.toAsciiBuilder    "."               ⊕
               A.unsafeFromBuilder (BT.integral 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)
+                      ]