{-# LANGUAGE PatternSynonyms #-}

module Web.Minion.Request.Method where

import Network.HTTP.Types qualified as Http

pattern GET :: Http.Method
pattern $mGET :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bGET :: Method
GET = "GET"

pattern POST :: Http.Method
pattern $mPOST :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bPOST :: Method
POST = "POST"

pattern PUT :: Http.Method
pattern $mPUT :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bPUT :: Method
PUT = "PUT"

pattern PATCH :: Http.Method
pattern $mPATCH :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bPATCH :: Method
PATCH = "PATCH"

pattern HEAD :: Http.Method
pattern $mHEAD :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bHEAD :: Method
HEAD = "HEAD"

pattern DELETE :: Http.Method
pattern $mDELETE :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bDELETE :: Method
DELETE = "DELETE"

pattern OPTIONS :: Http.Method
pattern $mOPTIONS :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bOPTIONS :: Method
OPTIONS = "OPTIONS"

pattern TRACE :: Http.Method
pattern $mTRACE :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bTRACE :: Method
TRACE = "TRACE"

pattern CONNECT :: Http.Method
pattern $mCONNECT :: forall {r}. Method -> ((# #) -> r) -> ((# #) -> r) -> r
$bCONNECT :: Method
CONNECT = "CONNECT"