@@ -15,8 +15,6 @@ module Network.Wai.Enumerator
1515 -- ** FilePath
1616 , fromFile
1717 , fromEitherFile
18− -- * Filters
19− , buffer
2018 ) where
2119
2220import Network.Wai (Enumerator (..), Source (..))
@@ -117,24 +115,3 @@ fromFile fp = Enumerator $ \iter a0 -> withBinaryFile fp ReadMode $ \h ->
117115-- be convenient for server implementations not optimizing file sending.
118116fromEitherFile :: Either FilePath Enumerator -> Enumerator
119117fromEitherFile = either fromFile id
120−
121−-- | Buffer chunks until we have a chunk of 'defaultChunkSize', and then send
122−-- it.
123−buffer :: Enumerator -> Enumerator
124−buffer (Enumerator e) =
125− Enumerator go
126− where
127− go iter seed = do
128− res <- e (iter' iter) (B.empty, seed)
129− case res of
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)
135− else do
136− let (x, y) = B.splitAt (defaultChunkSize - B.length buff) bs
137− res <- iter seed $ buff `B.append` x
138− case res of
139− Left seed' -> return $ Left (y, seed') -- y is ignored
140− Right seed' -> return $ Right (y, seed')