@@ -1,14 +1,14 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DeriveDataTypeable #-}
2+{-# LANGUAGE DeriveDataTypeable #-}
3+{-# LANGUAGE DeriveFoldable #-}
3−{-# LANGUAGE DeriveFunctor #-}
4+{-# LANGUAGE DeriveFunctor #-}
4−{-# LANGUAGE DeriveFoldable #-}
5+{-# LANGUAGE DeriveGeneric #-}
5−{-# LANGUAGE DeriveTraversable #-}
6+{-# LANGUAGE DeriveTraversable #-}
6−{-# LANGUAGE DeriveGeneric #-}
7−{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE MultiParamTypeClasses #-}
8−{-# LANGUAGE RankNTypes #-}
9−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE OverloadedStrings #-}
9+{-# LANGUAGE RankNTypes #-}
10−{-# LANGUAGE ScopedTypeVariables #-}
10+{-# LANGUAGE ScopedTypeVariables #-}
11−{-# LANGUAGE TypeFamilies #-}
11+{-# LANGUAGE TypeFamilies #-}
13module Servant.Client.Core.Internal.Request where
13module Servant.Client.Core.Internal.Request where
@@ -16,9 +16,10 @@ import Prelude ()
16import Prelude.Compat
16import Prelude.Compat
18import Control.Monad.Catch (Exception)
18import Control.Monad.Catch (Exception)
19−import qualified Data.ByteString.Builder as Builder
20import qualified Data.ByteString as BS
19import qualified Data.ByteString as BS
20+import qualified Data.ByteString.Builder as Builder
21import qualified Data.ByteString.Lazy as LBS
21import qualified Data.ByteString.Lazy as LBS
22+import Data.Int (Int64)
22import Data.Semigroup ((<>))
23import Data.Semigroup ((<>))
23import qualified Data.Sequence as Seq
24import qualified Data.Sequence as Seq
24import Data.Text (Text)
25import Data.Text (Text)
@@ -58,13 +59,19 @@ data RequestF a = Request
58 , requestHeaders :: Seq.Seq Header
59 , requestHeaders :: Seq.Seq Header
59 , requestHttpVersion :: HttpVersion
60 , requestHttpVersion :: HttpVersion
60 , requestMethod :: Method
61 , requestMethod :: Method
61− } deriving (Eq, Show, Functor, Generic, Typeable)
62+ } deriving (Generic, Typeable)
63type Request = RequestF Builder.Builder
64type Request = RequestF Builder.Builder
65−-- | The request body. Currently only lazy ByteStrings are supported.
66+-- | The request body. A replica of the @http-client@ @RequestBody@.
66−newtype RequestBody = RequestBodyLBS LBS.ByteString
68+ = RequestBodyLBS LBS.ByteString
69+ | RequestBodyBS BS.ByteString
70+ | RequestBodyBuilder Int64 Builder.Builder
71+ | RequestBodyStream Int64 ((IO BS.ByteString -> IO ()) -> IO ())
72+ | RequestBodyStreamChunked ((IO BS.ByteString -> IO ()) -> IO ())
73+ | RequestBodyIO (IO RequestBody)
67− deriving (Eq, Ord, Read, Show, Typeable)
74+ deriving (Generic, Typeable)
69data GenResponse a = Response
76data GenResponse a = Response
70 { responseStatusCode :: Status
77 { responseStatusCode :: Status