module Network.HTTP.Lucu.HttpVersion
( HttpVersion(..)
- , httpVersionP -- Parser HttpVersion
+ , httpVersionP -- Parser HttpVersion
+ , hPutHttpVersion -- Handle -> HttpVersion -> IO ()
)
where
import qualified Data.ByteString.Lazy.Char8 as B
import Data.ByteString.Lazy.Char8 (ByteString)
import Network.HTTP.Lucu.Parser
+import System.IO
data HttpVersion = HttpVersion Int Int
- deriving (Show, Eq)
+ deriving (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)
minor <- many1 digit
return $ HttpVersion (read major) (read minor)
+
+hPutHttpVersion :: Handle -> HttpVersion -> IO ()
+hPutHttpVersion h (HttpVersion maj min)
+ = do hPutStr h "HTTP/"
+ hPutStr h (show maj)
+ hPutChar h '.'
+ hPutStr h (show min)
\ No newline at end of file