3 -- |Manipulation of HTTP version string.
4 module Network.HTTP.Lucu.HttpVersion
11 import Network.HTTP.Lucu.Parser
14 -- |@'HttpVersion' major minor@ represents \"HTTP\/major.minor\".
15 data HttpVersion = HttpVersion !Int !Int
18 instance Show HttpVersion where
19 show (HttpVersion maj min) = "HTTP/" ++ show maj ++ "." ++ show min
21 instance Ord HttpVersion where
22 (HttpVersion majA minA) `compare` (HttpVersion majB minB)
30 httpVersionP :: Parser HttpVersion
31 httpVersionP = do string "HTTP/"
35 return $ HttpVersion (read' major) (read' minor)
37 read' "1" = 1 -- この二つが
38 read' "0" = 0 -- 壓倒的に頻出する
42 hPutHttpVersion :: Handle -> HttpVersion -> IO ()
43 hPutHttpVersion h (HttpVersion maj min)