module Data.Conduit.Shell.Segments where
import qualified Data.ByteString.Char8 as S8
import Data.Conduit
import qualified Data.Conduit.List as CL
import qualified Data.Conduit.Binary as CB
import Data.Conduit.Shell.Process
import Data.Text (Text)
import qualified Data.Text.Encoding as T
strings :: Segment () -> Segment [String]
strings s = s $| conduit (CB.lines $= CL.map S8.unpack $= CL.consume)
texts :: Segment () -> Segment [Text]
texts s = s $| conduit (CB.lines $= CL.map T.decodeUtf8 $= CL.consume)
ignore :: Segment () -> Segment ()
ignore s = fmap (const ()) (s $| conduit (CL.consume))