webgear-core-1.2.0: src/WebGear/Core/Response.hs
{- |
Responses from handlers.
-}
module WebGear.Core.Response (
-- * Basic Types
Response (..),
ResponseBody (..),
) where
import qualified Data.Binary.Builder as B
import Data.ByteString (ByteString)
import qualified Network.HTTP.Types as HTTP
import qualified Network.Wai as Wai
-- | An HTTP response sent from the server to the client.
data Response
= Response HTTP.Status HTTP.ResponseHeaders ResponseBody
| ResponseRaw (IO ByteString -> (ByteString -> IO ()) -> IO ()) Wai.Response
| ResponseCont ((Wai.Response -> IO Wai.ResponseReceived) -> IO Wai.ResponseReceived)
-- | HTTP response body
data ResponseBody
= ResponseBodyFile FilePath (Maybe Wai.FilePart)
| ResponseBodyBuilder B.Builder
| ResponseBodyStream Wai.StreamingBody