chu2-2012.11.19: src/Chu2/FFI.hs
module Chu2.FFI where
import Data.ByteString (ByteString)
data RequestMethod =
OPTIONS
| GET
| HEAD
| POST
| PUT
| DELETE
| TRACE
| CONNECT
deriving (Show, Read, Eq)
data Status =
OK
| Created
| Accepted
| NoContent
| MultipleChoices
| MovedPermanently
| SeeOther
| NotModified
| MovedTemporarily
| BadRequest
| Unauthorized
| Forbidden
| NotFound
| MethodNotAllowed
| NotAcceptable
| Conflict
| Gone
| PreconditionFailed
| RequestEntityTooLarge
| RequestURItooLong
| UnsupportedMediaType
| NotImplemented
| ServiceUnavailable
deriving (Show)
type Field = String
type Headers = [Header]
type Header = (,) Field Field
type Chu2Errors = Field -> IO ()
data Chu2UrlScheme = HTTP | HTTPS
deriving (Show)
data Env = Env
{ requestMethod :: RequestMethod
, scriptName :: Field
, pathInfo :: Field
, queryString :: Field
, serverName :: Field
, serverPort :: Field
, httpHeaders :: Headers
, chu2UrlScheme :: Chu2UrlScheme
, chu2Input :: Field
, chu2Headers :: Headers
}
data Response = Response
{ status :: Status
, headers :: Headers
, body :: Field
}
deriving (Show)