| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
UnliftIO.Streams
Synopsis
- data InputStream a
- data OutputStream a
- makeInputStream :: MonadUnliftIO m => m (Maybe a) -> m (InputStream a)
- makeOutputStream :: MonadUnliftIO m => (Maybe a -> m ()) -> m (OutputStream a)
- read :: MonadUnliftIO m => InputStream a -> m (Maybe a)
- unRead :: MonadUnliftIO m => a -> InputStream a -> m ()
- peek :: MonadUnliftIO m => InputStream a -> m (Maybe a)
- write :: MonadUnliftIO m => Maybe a -> OutputStream a -> m ()
- writeTo :: MonadUnliftIO m => OutputStream a -> Maybe a -> m ()
- atEOF :: MonadUnliftIO m => InputStream a -> m Bool
- nullInput :: MonadUnliftIO m => m (InputStream a)
- nullOutput :: MonadUnliftIO m => m (OutputStream a)
- module UnliftIO.Streams.ByteString
- module UnliftIO.Streams.Combinators
- module UnliftIO.Streams.File
- module UnliftIO.Streams.List
- module UnliftIO.Streams.Text
Stream types
data InputStream a #
An InputStream generates values of type c in the IO monad.
Two primitive operations are defined on InputStream:
reads a value from the stream, where "end of stream" is signaled byread::InputStreamc ->IO(Maybec)readreturningNothing."pushes back" a value to the stream.unRead:: c ->InputStreamc ->IO()
It is intended that InputStreams obey the following law:
unReadc stream >>readstream ===return(Justc)
Instances
data OutputStream a #
An OutputStream consumes values of type c in the IO monad.
The only primitive operation defined on OutputStream is:
write::Maybec ->OutputStreamc ->IO()
Values of type c are written in an OutputStream by wrapping them in
Just, and the end of the stream is indicated by supplying Nothing.
If you supply a value after a Nothing, the behavior is defined by the
implementer of the given OutputStream. (All OutputStream definitions in
this library will simply discard the extra input.)
Instances
Creating streams
makeInputStream :: MonadUnliftIO m => m (Maybe a) -> m (InputStream a) Source #
makeOutputStream :: MonadUnliftIO m => (Maybe a -> m ()) -> m (OutputStream a) Source #
Primitive stream operations
read :: MonadUnliftIO m => InputStream a -> m (Maybe a) Source #
unRead :: MonadUnliftIO m => a -> InputStream a -> m () Source #
peek :: MonadUnliftIO m => InputStream a -> m (Maybe a) Source #
write :: MonadUnliftIO m => Maybe a -> OutputStream a -> m () Source #
writeTo :: MonadUnliftIO m => OutputStream a -> Maybe a -> m () Source #
atEOF :: MonadUnliftIO m => InputStream a -> m Bool Source #
Utility streams
nullInput :: MonadUnliftIO m => m (InputStream a) Source #
nullOutput :: MonadUnliftIO m => m (OutputStream a) Source #
Batteries included
module UnliftIO.Streams.ByteString
module UnliftIO.Streams.Combinators
module UnliftIO.Streams.File
module UnliftIO.Streams.List
module UnliftIO.Streams.Text