{-# LANGUAGE ForeignFunctionInterface #-}
--------------------------------------------------------------------
-- |
-- Module    : Network.Curl.Code
-- Copyright : (c) Galois Inc 2007-2009, 2011
-- License   : BSD3
--
-- Maintainer: Sigbjorn Finne <sof@galois.com>
-- Stability : provisional
-- Portability: portable
--
-- Representing Curl's status codes as a Haskell type.
--
--------------------------------------------------------------------

module Network.Curl.Code where

import Foreign.C.Types

data CurlCode
 = CurlOK
 | CurlUnspportedProtocol
 | CurlFailedInit
 | CurlUrlMalformat
 | CurlUrlMalformatUser
 | CurlCouldntResolveProxy
 | CurlCouldntResolveHost
 | CurlCouldntConnect
 | CurlFtpWeirdServerReply
 | CurlFtpAccessDenied
 | CurlFtpUserPasswordIncorrect
 | CurlFtpWeirdPassReply
 | CurlFtpWeirdUserReply
 | CurlFtpWeirdPASVReply
 | CurlFtpWeird227Format
 | CurlFtpCantGetHost
 | CurlFtpCantReconnect
 | CurlFtpCouldnSetBinary
 | CurlPartialFile
 | CurlFtpCouldntRetrFile
 | CurlFtpWriteError
 | CurlFtpQuoteError
 | CurlHttpReturnedError
 | CurlWriteError
 | CurlMalformatError
 | CurlFtpCouldnStorFile
 | CurlReadError
 | CurlOutOfMemory
 | CurlOperationTimeout
 | CurlFtpCouldntSetAscii
 | CurlFtpPortFailed
 | CurlFtpCouldntUseRest
 | CurlFtpCouldntGetSize
 | CurlHttpRangeError
 | CurlHttpPostError
 | CurlSSLConnectError
 | CurlBadDownloadResume
 | CurlFileCouldntReadFile
 | CurlLDAPCannotBind
 | CurlLDPAPSearchFailed
 | CurlLibraryNotFound
 | CurlFunctionNotFound
 | CurlAbortedByCallback
 | CurlBadFunctionArgument
 | CurlBadCallingOrder
 | CurlInterfaceFailed
 | CurlBadPasswordEntered
 | CurlTooManyRedirects
 | CurlUnknownTelnetOption
 | CurlTelnetOptionSyntax
 | CurlObsolete
 | CurlSSLPeerCertificate
 | CurlGotNothing
 | CurlSSLEngineNotFound
 | CurlSSLEngineSetFailed
 | CurlSendError
 | CurlRecvError
 | CurlShareInUse
 | CurlSSLCertProblem
 | CurlSSLCipher
 | CurlSSLCACert
 | CurlBadContentEncoding
 | CurlLDAPInvalidUrl
 | CurlFilesizeExceeded
 | CurlFtpSSLFailed
 | CurlSendFailRewind
 | CurlSSLEngineInitFailed
 | CurlLoginDenied
 | CurlTFtpNotFound
 | CurlTFtpPerm
 | CurlTFtpDiskFull
 | CurlTFtpIllegal
 | CurlTFtpUnknownId
 | CurlTFtpExists
 | CurlTFtpNoSuchUser
 | CurlConvFailed
 | CurlConvReqd
 | CurlSSLCACertBadFile
 | CurlRemoveFileNotFound
 | CurlSSH
 | CurlSSLShutdownFailed
 | CurlAgain
 | CurlSSLCRLBadFile
 | CurlSSLIssuerError
   deriving ( CurlCode -> CurlCode -> Bool
(CurlCode -> CurlCode -> Bool)
-> (CurlCode -> CurlCode -> Bool) -> Eq CurlCode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CurlCode -> CurlCode -> Bool
$c/= :: CurlCode -> CurlCode -> Bool
== :: CurlCode -> CurlCode -> Bool
$c== :: CurlCode -> CurlCode -> Bool
Eq, Int -> CurlCode -> ShowS
[CurlCode] -> ShowS
CurlCode -> String
(Int -> CurlCode -> ShowS)
-> (CurlCode -> String) -> ([CurlCode] -> ShowS) -> Show CurlCode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CurlCode] -> ShowS
$cshowList :: [CurlCode] -> ShowS
show :: CurlCode -> String
$cshow :: CurlCode -> String
showsPrec :: Int -> CurlCode -> ShowS
$cshowsPrec :: Int -> CurlCode -> ShowS
Show, Int -> CurlCode
CurlCode -> Int
CurlCode -> [CurlCode]
CurlCode -> CurlCode
CurlCode -> CurlCode -> [CurlCode]
CurlCode -> CurlCode -> CurlCode -> [CurlCode]
(CurlCode -> CurlCode)
-> (CurlCode -> CurlCode)
-> (Int -> CurlCode)
-> (CurlCode -> Int)
-> (CurlCode -> [CurlCode])
-> (CurlCode -> CurlCode -> [CurlCode])
-> (CurlCode -> CurlCode -> [CurlCode])
-> (CurlCode -> CurlCode -> CurlCode -> [CurlCode])
-> Enum CurlCode
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: CurlCode -> CurlCode -> CurlCode -> [CurlCode]
$cenumFromThenTo :: CurlCode -> CurlCode -> CurlCode -> [CurlCode]
enumFromTo :: CurlCode -> CurlCode -> [CurlCode]
$cenumFromTo :: CurlCode -> CurlCode -> [CurlCode]
enumFromThen :: CurlCode -> CurlCode -> [CurlCode]
$cenumFromThen :: CurlCode -> CurlCode -> [CurlCode]
enumFrom :: CurlCode -> [CurlCode]
$cenumFrom :: CurlCode -> [CurlCode]
fromEnum :: CurlCode -> Int
$cfromEnum :: CurlCode -> Int
toEnum :: Int -> CurlCode
$ctoEnum :: Int -> CurlCode
pred :: CurlCode -> CurlCode
$cpred :: CurlCode -> CurlCode
succ :: CurlCode -> CurlCode
$csucc :: CurlCode -> CurlCode
Enum )

toCode :: CInt -> CurlCode
toCode :: CInt -> CurlCode
toCode x :: CInt
x = Int -> CurlCode
forall a. Enum a => Int -> a
toEnum (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
x)