reflex-process-0.3.3.1: Reflex FRP interface for running system processes
Safe HaskellNone
LanguageHaskell2010

Reflex.Process.Lines

Contents

Synopsis

Output lines

data Lines Source #

Accumulator for line-based output that keeps track of any dangling, unterminated line

Instances

Instances details
Eq Lines Source # 
Instance details

Defined in Reflex.Process.Lines

Methods

(==) :: Lines -> Lines -> Bool Source #

(/=) :: Lines -> Lines -> Bool Source #

Ord Lines Source # 
Instance details

Defined in Reflex.Process.Lines

Read Lines Source # 
Instance details

Defined in Reflex.Process.Lines

Show Lines Source # 
Instance details

Defined in Reflex.Process.Lines

Semigroup Lines Source # 
Instance details

Defined in Reflex.Process.Lines

Monoid Lines Source # 
Instance details

Defined in Reflex.Process.Lines

emptyLines :: Lines Source #

Empty output

addLines :: ByteString -> Lines -> Lines Source #

Add some raw output to a Lines. This will chop the raw output up into lines.

unLines :: Lines -> ByteString Source #

Convert a Lines back into a ByteString

lastWholeLine :: Lines -> Maybe ByteString Source #

Convenience accessor for the last whole line received by a Lines. Ignores any unterminated line that may follow.

splitLinesOn :: (ByteString -> Bool) -> Lines -> Maybe (Lines, Lines) Source #

Split lines into two. The sequence that satisfies the predicate is consumed and will not appear in either resulting Lines.

newLines Source #

Arguments

:: (Reflex t, MonadHold t m, MonadFix m) 
=> Event t ByteString 
-> Event t ()

Event that flushes any remaining unterminated lines

-> m (Event t Lines)

These will be complete lines except when the flush event fires, in which it may include unterminated lines

Given an event of raw bytes, fire an output event of *terminated* lines. Unterminated lines are held until the line they belong to is completed or until the flush event fires.