-instance Parsable ByteString Request where
- {-# INLINEABLE parser #-}
- parser = do skipMany crlf
- (meth, u, ver) ← requestLine
- hdrs ← parser
- return Request {
- reqMethod = meth
- , reqURI = u
- , reqVersion = ver
- , reqHeaders = hdrs
- }
+instance Default (Parser Method) where
+ {-# INLINEABLE def #-}
+ def = choice
+ [ string "OPTIONS" ≫ return OPTIONS
+ , string "GET" ≫ return GET
+ , string "HEAD" ≫ return HEAD
+ , string "POST" ≫ return POST
+ , string "PUT" ≫ return PUT
+ , string "DELETE" ≫ return DELETE
+ , string "TRACE" ≫ return TRACE
+ , string "CONNECT" ≫ return CONNECT
+ , ExtensionMethod <$> token
+ ]
+
+instance Default (Parser Request) where
+ {-# INLINEABLE def #-}
+ def = do skipMany crlf
+ (meth, u, ver) ← requestLine
+ hdrs ← def
+ return Request {
+ reqMethod = meth
+ , reqURI = u
+ , reqVersion = ver
+ , reqHeaders = hdrs
+ }