on master help sign in
fromEitherFile -> fromResponseBody
8811b6aMichael Snoyman
Network/Wai/Enumerator.hs+9−7
@@ -14,10 +14,10 @@ module Network.Wai.Enumerator
14 , fromHandle
14 , fromHandle
15 -- ** FilePath
15 -- ** FilePath
16 , fromFile
16 , fromFile
17− , fromEitherFile
17+ , fromResponseBody
18 ) where
18 ) where
19
19
20−import Network.Wai (Enumerator (..), Source (..))
20+import Network.Wai (Enumerator (..), Source (..), ResponseBody (..))
21import qualified Network.Wai.Source as Source
21import qualified Network.Wai.Source as Source
22import qualified Data.ByteString.Lazy as L
22import qualified Data.ByteString.Lazy as L
23import qualified Data.ByteString as B
23import qualified Data.ByteString as B
@@ -110,8 +110,10 @@ fromFile :: FilePath -> Enumerator
110fromFile fp = Enumerator $ \iter a0 -> withBinaryFile fp ReadMode $ \h ->
110fromFile fp = Enumerator $ \iter a0 -> withBinaryFile fp ReadMode $ \h ->
111 runEnumerator (fromHandle h) iter a0
111 runEnumerator (fromHandle h) iter a0
112
112
113−-- | Since the response body is defined as an 'Either' 'FilePath' 'Enumerator',
113+-- | Since the response body is defined as a 'ResponseBody', this function
114−-- this function simply reduces the whole operator to an enumerator. This can
114+-- simply reduces the whole value to an enumerator. This can be convenient for
115−-- be convenient for server implementations not optimizing file sending.
115+-- server implementations not optimizing file sending.
116−fromEitherFile :: Either FilePath Enumerator -> Enumerator
116+fromResponseBody :: ResponseBody -> Enumerator
117−fromEitherFile = either fromFile id
117+fromResponseBody (ResponseEnumerator e) = e
118+fromResponseBody (ResponseLBS lbs) = fromLBS lbs
119+fromResponseBody (ResponseFile fp) = fromFile fp