@@ -15,8 +15,6 @@ module Network.Wai.Enumerator
15 -- ** FilePath
15 -- ** FilePath
16 , fromFile
16 , fromFile
17 , fromEitherFile
17 , fromEitherFile
22import Network.Wai (Enumerator (..), Source (..))
20import Network.Wai (Enumerator (..), Source (..))
@@ -117,24 +115,3 @@ fromFile fp = Enumerator $ \iter a0 -> withBinaryFile fp ReadMode $ \h ->
117-- be convenient for server implementations not optimizing file sending.
115-- be convenient for server implementations not optimizing file sending.
118fromEitherFile :: Either FilePath Enumerator -> Enumerator
116fromEitherFile :: Either FilePath Enumerator -> Enumerator
119fromEitherFile = either fromFile id
117fromEitherFile = either fromFile id
121−-- | Buffer chunks until we have a chunk of 'defaultChunkSize', and then send
123−buffer :: Enumerator -> Enumerator
124−buffer (Enumerator e) =
128− res <- e (iter' iter) (B.empty, seed)
130− Left (_, seed') -> return $ Left seed'
131− Right (buff, seed') -> iter seed' buff
132− iter' iter (buff, seed) bs = do
133− if B.length buff + B.length bs < defaultChunkSize
134− then return $ Right (buff `B.append` bs, seed)
136− let (x, y) = B.splitAt (defaultChunkSize - B.length buff) bs
137− res <- iter seed $ buff `B.append` x
139− Left seed' -> return $ Left (y, seed') -- y is ignored
140− Right seed' -> return $ Right (y, seed')