{- | 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