{-# LANGUAGE PatternSynonyms #-}

module Network.HTTP3.Error (
    ApplicationProtocolError(H3NoError
                            ,H3GeneralProtocolError
                            ,H3InternalError
                            ,H3StreamCreationError
                            ,H3ClosedCriticalStream
                            ,H3FrameUnexpected
                            ,H3FrameError
                            ,H3ExcessiveLoad
                            ,H3IdError
                            ,H3SettingsError
                            ,H3MissingSettings
                            ,H3RequestRejected
                            ,H3RequestCancelled
                            ,H3RequestIncomplete
                            ,H3MessageError
                            ,H3ConnectError
                            ,H3VersionFallback
                            )
  ) where

import Network.QUIC

pattern H3NoError                :: ApplicationProtocolError
pattern $bH3NoError :: ApplicationProtocolError
$mH3NoError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3NoError                 = ApplicationProtocolError 0x100

pattern H3GeneralProtocolError   :: ApplicationProtocolError
pattern $bH3GeneralProtocolError :: ApplicationProtocolError
$mH3GeneralProtocolError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3GeneralProtocolError    = ApplicationProtocolError 0x101

pattern H3InternalError          :: ApplicationProtocolError
pattern $bH3InternalError :: ApplicationProtocolError
$mH3InternalError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3InternalError           = ApplicationProtocolError 0x102

pattern H3StreamCreationError    :: ApplicationProtocolError
pattern $bH3StreamCreationError :: ApplicationProtocolError
$mH3StreamCreationError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3StreamCreationError     = ApplicationProtocolError 0x103

pattern H3ClosedCriticalStream   :: ApplicationProtocolError
pattern $bH3ClosedCriticalStream :: ApplicationProtocolError
$mH3ClosedCriticalStream :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3ClosedCriticalStream    = ApplicationProtocolError 0x104

pattern H3FrameUnexpected        :: ApplicationProtocolError
pattern $bH3FrameUnexpected :: ApplicationProtocolError
$mH3FrameUnexpected :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3FrameUnexpected         = ApplicationProtocolError 0x105

pattern H3FrameError             :: ApplicationProtocolError
pattern $bH3FrameError :: ApplicationProtocolError
$mH3FrameError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3FrameError              = ApplicationProtocolError 0x106

pattern H3ExcessiveLoad          :: ApplicationProtocolError
pattern $bH3ExcessiveLoad :: ApplicationProtocolError
$mH3ExcessiveLoad :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3ExcessiveLoad           = ApplicationProtocolError 0x107

pattern H3IdError                :: ApplicationProtocolError
pattern $bH3IdError :: ApplicationProtocolError
$mH3IdError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3IdError                 = ApplicationProtocolError 0x108

pattern H3SettingsError          :: ApplicationProtocolError
pattern $bH3SettingsError :: ApplicationProtocolError
$mH3SettingsError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3SettingsError           = ApplicationProtocolError 0x109

pattern H3MissingSettings        :: ApplicationProtocolError
pattern $bH3MissingSettings :: ApplicationProtocolError
$mH3MissingSettings :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3MissingSettings         = ApplicationProtocolError 0x10a

pattern H3RequestRejected        :: ApplicationProtocolError
pattern $bH3RequestRejected :: ApplicationProtocolError
$mH3RequestRejected :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3RequestRejected         = ApplicationProtocolError 0x10b

pattern H3RequestCancelled       :: ApplicationProtocolError
pattern $bH3RequestCancelled :: ApplicationProtocolError
$mH3RequestCancelled :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3RequestCancelled        = ApplicationProtocolError 0x10c

pattern H3RequestIncomplete      :: ApplicationProtocolError
pattern $bH3RequestIncomplete :: ApplicationProtocolError
$mH3RequestIncomplete :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3RequestIncomplete       = ApplicationProtocolError 0x10d

pattern H3MessageError           :: ApplicationProtocolError
pattern $bH3MessageError :: ApplicationProtocolError
$mH3MessageError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3MessageError            = ApplicationProtocolError 0x10e

pattern H3ConnectError           :: ApplicationProtocolError
pattern $bH3ConnectError :: ApplicationProtocolError
$mH3ConnectError :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3ConnectError            = ApplicationProtocolError 0x10f

pattern H3VersionFallback        :: ApplicationProtocolError
pattern $bH3VersionFallback :: ApplicationProtocolError
$mH3VersionFallback :: forall {r}.
ApplicationProtocolError -> ((# #) -> r) -> ((# #) -> r) -> r
H3VersionFallback         = ApplicationProtocolError 0x110