module Servant.Streaming where import GHC.TypeLits (Nat) import Network.HTTP.Types -- | A request body that should be streamed. type StreamBody ct = StreamBodyMonad ct IO -- | A request body that should be streamed with specified server monad data StreamBodyMonad (contentTypes :: [*]) (m :: * -> *) -- | A response body that should be streamed, with specified method, status, -- and content-type. data StreamResponse (method :: StdMethod) (status :: Nat) (contentTypes :: [*]) -- | The streaming version of the @Get@ combinator. type StreamResponseGet = StreamResponse 'GET 200 -- | The streaming version of the @Post@ combinator. type StreamResponsePost = StreamResponse 'POST 200 -- | The streaming version of the @Put@ combinator. type StreamResponsePut = StreamResponse 'PUT 200 -- | The streaming version of the @Patch@ combinator. type StreamResponsePatch = StreamResponse 'PATCH 200