]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/HttpVersion.hs
Supplession of unneeded imports
[Lucu.git] / Network / HTTP / Lucu / HttpVersion.hs
index 88dc24e5b61673726da5f31e70d184e42b9cf48f..e1ed0f38024fd9836629c84eee5d9bef20fd46cc 100644 (file)
@@ -1,15 +1,22 @@
+-- #prune
+
+-- |Manipulation of HTTP version string.
 module Network.HTTP.Lucu.HttpVersion
     ( HttpVersion(..)
-    , httpVersionP -- Parser HttpVersion
+    , httpVersionP
+    , hPutHttpVersion
     )
     where
 
-import qualified Data.ByteString.Lazy.Char8 as B
-import           Data.ByteString.Lazy.Char8 (ByteString)
 import           Network.HTTP.Lucu.Parser
+import           System.IO
+
+-- |@'HttpVersion' major minor@ represents \"HTTP\/major.minor\".
+data HttpVersion = HttpVersion !Int !Int
+                   deriving (Eq)
 
-data HttpVersion = HttpVersion Int Int
-                   deriving (Show, Eq)
+instance Show HttpVersion where
+    show (HttpVersion maj min) = "HTTP/" ++ show maj ++ "." ++ show min
 
 instance Ord HttpVersion where
     (HttpVersion majA minA) `compare` (HttpVersion majB minB)
@@ -27,3 +34,11 @@ httpVersionP = do string "HTTP/"
                   minor <- many1 digit
                   return $ HttpVersion (read major) (read minor)
 
+
+hPutHttpVersion :: Handle -> HttpVersion -> IO ()
+hPutHttpVersion h (HttpVersion maj min)
+    = h `seq`
+      do hPutStr  h "HTTP/"
+         hPutStr  h (show maj)
+         hPutChar h '.'
+         hPutStr  h (show min)
\ No newline at end of file