]> git.immae.eu Git - github/fretlink/text-pipes.git/blobdiff - Pipes/Text/IO.hs
Merge pull request #18 from sid-kap/text_lines
[github/fretlink/text-pipes.git] / Pipes / Text / IO.hs
index bacb2073ed70def68e6a67ff9a25ffb4e7967693..51c69265a04ac49a9aaa047cf7b1952242efdc40 100644 (file)
@@ -11,8 +11,10 @@ module Pipes.Text.IO
    
    -- * Producers
    fromHandle
+   , fromHandleLn
    , stdin
    , readFile
+   , readFileLn
    -- * Consumers
    , toHandle
    , stdout
@@ -119,6 +121,19 @@ fromHandle h =  go where
                                     go 
 {-# INLINABLE fromHandle#-}
 
+
+fromHandleLn :: MonadIO m => IO.Handle -> Producer Text m ()
+fromHandleLn h =  go where
+      getLine :: IO (Either G.IOException Text)
+      getLine = try (T.hGetLine h)
+
+      go = do txt <- liftIO getLine
+              case txt of
+                Left e  -> return ()
+                Right y -> do yield y
+                              go
+{-# INLINABLE fromHandleLn #-}
+
 -- | Stream text from 'stdin'
 stdin :: MonadIO m => Producer Text m ()
 stdin = fromHandle IO.stdin
@@ -138,20 +153,9 @@ readFile file = Safe.withFile file IO.ReadMode fromHandle
 
 {-| Stream lines of text from a file
 -}
-readFileLines :: MonadSafe m => FilePath -> Producer Text m ()
-readFileLines file = Safe.withFile file IO.ReadMode fromHandleLines
-  where
-    fromHandleLines :: MonadIO m => IO.Handle -> Producer Text m ()
-    fromHandleLines h =  go where
-          getLine :: IO (Either G.IOException Text)
-          getLine = try (T.hGetLine h)
-
-          go = do txt <- liftIO getLine
-                  case txt of
-                    Left e  -> return ()
-                    Right y -> do yield y
-                                  go
-{-# INLINE readFileLines #-}
+readFileLn :: MonadSafe m => FilePath -> Producer Text m ()
+readFileLn file = Safe.withFile file IO.ReadMode fromHandleLn
+{-# INLINE readFileLn #-}
 
 
 {-| Stream text to 'stdout'