Portability | portable |
---|---|
Maintainer | jmillikin@gmail.com |
This module is intended to be imported qualified:
import qualified Data.Enumerator.Binary as EB
Since: 0.4.5
- enumHandle :: MonadIO m => Integer -> Handle -> Enumerator ByteString m b
- enumFile :: FilePath -> Enumerator ByteString IO b
- iterHandle :: MonadIO m => Handle -> Iteratee ByteString m ()
- head :: Monad m => Iteratee ByteString m (Maybe Word8)
- drop :: Monad m => Integer -> Iteratee ByteString m ()
- dropWhile :: Monad m => (Word8 -> Bool) -> Iteratee ByteString m ()
- take :: Monad m => Integer -> Iteratee ByteString m ByteString
- takeWhile :: Monad m => (Word8 -> Bool) -> Iteratee ByteString m ByteString
- consume :: Monad m => Iteratee ByteString m ByteString
- require :: Monad m => Integer -> Iteratee ByteString m ()
- isolate :: Monad m => Integer -> Enumeratee ByteString ByteString m b
Binary IO
:: MonadIO m | |
=> Integer | Buffer size |
-> Handle | |
-> Enumerator ByteString m b |
Read bytes (in chunks of the given buffer size) from the handle, and
stream them to an Iteratee
. If an exception occurs during file IO,
enumeration will stop and Error
will be returned. Exceptions from the
iteratee are not caught.
This enumerator blocks until at least one byte is available from the handle, and might read less than the maximum buffer size in some cases.
The handle should be opened with no encoding, and in ReadMode
or
ReadWriteMode
.
enumFile :: FilePath -> Enumerator ByteString IO bSource
Opens a file path in binary mode, and passes the handle to enumHandle
.
The file will be closed when the Iteratee
finishes.
iterHandle :: MonadIO m => Handle -> Iteratee ByteString m ()Source
Read bytes from a stream and write them to a handle. If an exception
occurs during file IO, enumeration will stop and Error
will be
returned.
The handle should be opened with no encoding, and in WriteMode
or
ReadWriteMode
.
List analogues
head :: Monad m => Iteratee ByteString m (Maybe Word8)Source
Get the next byte from the stream, or Nothing
if the stream has
ended.
Since: 0.4.5
drop :: Monad m => Integer -> Iteratee ByteString m ()Source
drop n
ignores n bytes of input from the stream.
Since: 0.4.5
dropWhile :: Monad m => (Word8 -> Bool) -> Iteratee ByteString m ()Source
dropWhile p
ignores input from the stream until the first byte which
does not match the predicate.
Since: 0.4.5
take :: Monad m => Integer -> Iteratee ByteString m ByteStringSource
take n
extracts the next n bytes from the stream, as a lazy
ByteString.
Since: 0.4.5
takeWhile :: Monad m => (Word8 -> Bool) -> Iteratee ByteString m ByteStringSource
takeWhile p
extracts input from the stream until the first byte which
does not match the predicate.
Since: 0.4.5
consume :: Monad m => Iteratee ByteString m ByteStringSource
Read all remaining input from the stream, and return as a lazy ByteString.
Since: 0.4.5
require :: Monad m => Integer -> Iteratee ByteString m ()Source
require n
buffers input until at least n bytes are available, or
throws an error if the stream ends early.
Since: 0.4.5
isolate :: Monad m => Integer -> Enumeratee ByteString ByteString m bSource
isolate n
reads at most n bytes from the stream, and passes them
to its iteratee. If the iteratee finishes early, bytes continue to be
consumed from the outer stream until n have been consumed.
Since: 0.4.5