pipes-lines- Pipes for grouping by lines with carriage returns.

Safe HaskellSafe



This is equivalent to the http://hackage.haskell.org/package/pipes-bytestring/docs/Pipes-ByteString.html#v:lines except it works for lines delimited with "\r\n"

Warning: Since this works on bytestrings, it assumes a particular encoding. You should use Pipes.Text.Lines if possible.



lines :: Monad m => Lens' (Producer ByteString m r) (FreeT (Producer ByteString m) m r) Source #

Producer of strict ByteStrings is delimited by "\r\n"

>>> runEffect $ for (over (lines . individually) (<* yield "!") (yield "asdf\r\nqwerty\r\n")) (lift . print)

line :: Monad m => Producer ByteString m r -> Producer ByteString m (Producer ByteString m r) Source #

Producer which consumes a single line, then returns a producer with rest of input.

>>> rest <- runEffect $ for (line (yield "foo\r\nbar\r\nbaz\r\n")) (lift . print)
>>> runEffect $ for rest (lift . print)