@@ -4,7 +4,6 @@
4{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE FlexibleInstances #-}
5{-# LANGUAGE InstanceSigs #-}
5{-# LANGUAGE InstanceSigs #-}
6{-# LANGUAGE MultiParamTypeClasses #-}
6{-# LANGUAGE MultiParamTypeClasses #-}
7−{-# LANGUAGE RankNTypes #-}
8{-# LANGUAGE OverloadedStrings #-}
7{-# LANGUAGE OverloadedStrings #-}
9{-# LANGUAGE PolyKinds #-}
8{-# LANGUAGE PolyKinds #-}
10{-# LANGUAGE ScopedTypeVariables #-}
9{-# LANGUAGE ScopedTypeVariables #-}
@@ -48,6 +47,7 @@ import Servant.API ((:<|>) ((:<|>)), (:>),
48 QueryParams, Raw,
47 QueryParams, Raw,
49 ReflectMethod (..),
48 ReflectMethod (..),
50 RemoteHost, ReqBody,
49 RemoteHost, ReqBody,
52 Summary, ToHttpApiData,
52 Summary, ToHttpApiData,
53 Vault, Verb,
53 Vault, Verb,
@@ -253,21 +253,19 @@ instance OVERLAPPING_
253 , getHeadersHList = buildHeadersTo . toList $ responseHeaders response
253 , getHeadersHList = buildHeadersTo . toList $ responseHeaders response
256−data ResultStream a = ResultStream ((forall b. (IO (Maybe (Either String a)) -> IO b) -> IO b))
258instance OVERLAPPABLE_
256instance OVERLAPPABLE_
259 ( RunClient m, MimeUnrender ct a, ReflectMethod method,
257 ( RunClient m, MimeUnrender ct a, ReflectMethod method,
260 FramingUnrender framing a, BuildFromStream a (f a)
258 FramingUnrender framing a, BuildFromStream a (f a)
261 ) => HasClient m (Stream method framing ct (f a)) where
259 ) => HasClient m (Stream method framing ct (f a)) where
263− type Client m (Stream method framing ct (f a)) = m (ResultStream a)
261+ type Client m (Stream method framing ct (f a)) = m (f a)
265 clientWithRoute _pm Proxy req = do
263 clientWithRoute _pm Proxy req = do
266 sresp <- streamingRequest req
264 sresp <- streamingRequest req
267 { requestAccept = fromList [contentType (Proxy :: Proxy ct)]
265 { requestAccept = fromList [contentType (Proxy :: Proxy ct)]
268 , requestMethod = reflectMethod (Proxy :: Proxy method)
266 , requestMethod = reflectMethod (Proxy :: Proxy method)
270− return $ ResultStream $ \k ->
268+ return . buildFromStream $ ResultStream $ \k ->
271 runStreamingResponse sresp $ \(status,_headers,_httpversion,reader) -> do
269 runStreamingResponse sresp $ \(status,_headers,_httpversion,reader) -> do
272 when (H.statusCode status /= 200) $ error "bad status" --fixme
270 when (H.statusCode status /= 200) $ error "bad status" --fixme
273 let unrender = unrenderFrames (Proxy :: Proxy framing) (Proxy :: Proxy a)
271 let unrender = unrenderFrames (Proxy :: Proxy framing) (Proxy :: Proxy a)