]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/HttpVersion.hs
Merge branch 'parsable'
[Lucu.git] / Network / HTTP / Lucu / HttpVersion.hs
index 889042728fcdd310811bdfce67659430d1cbab32..983cb503f09d0f85a670af16a387906f3c8d1a02 100644 (file)
@@ -8,13 +8,14 @@
 -- |An internal module for HTTP version numbers.
 module Network.HTTP.Lucu.HttpVersion
     ( HttpVersion(..)
-    , httpVersion
     )
     where
 import Control.Applicative
 import Control.Applicative.Unicode
 import Data.Ascii (Ascii, AsciiBuilder)
 import Data.Attoparsec.Char8
+import Data.Attoparsec.Parsable
+import Data.ByteString (ByteString)
 import Data.Convertible.Base
 import Data.Convertible.Instances.Ascii ()
 import Data.Convertible.Utils
@@ -57,8 +58,8 @@ deriveAttempts [ ([t| HttpVersion |], [t| Ascii        |])
                , ([t| HttpVersion |], [t| AsciiBuilder |])
                ]
 
--- |'Parser' for an 'HttpVersion'.
-httpVersion ∷ Parser HttpVersion
-httpVersion = string "HTTP/"
-              *>
-              (HttpVersion <$> decimal ⊛ (char '.' *> decimal))
+instance Parsable ByteString HttpVersion where
+    {-# INLINEABLE parser #-}
+    parser = string "HTTP/"
+             *>
+             (HttpVersion <$> decimal ⊛ (char '.' *> decimal))