-{-# LANGUAGE RankNTypes, TypeFamilies, BangPatterns, Trustworthy #-}
+{-# LANGUAGE RankNTypes, TypeFamilies, BangPatterns, Safe#-}
{-| The module @Pipes.Text@ closely follows @Pipes.ByteString@ from
the @pipes-bytestring@ package. A draft tutorial can be found in
, module Pipes.Group
) where
-import Control.Applicative ((<*))
import Control.Monad (liftM, join)
-import Control.Monad.Trans.State.Strict (StateT(..), modify)
+import Control.Monad.Trans.State.Strict (modify)
import qualified Data.Text as T
import Data.Text (Text)
import qualified Data.Text.Lazy as TL
import Pipes.Parse (Parser)
import qualified Pipes.Prelude as P
import Data.Char (isSpace)
-import Data.Word (Word8)
import Foreign.Storable (sizeOf)
import Data.Bits (shiftL)
import Prelude hiding (
import Data.Functor.Constant (Constant(..))
import Data.Char (ord)
import Data.ByteString as B
-import Data.ByteString (ByteString)
import Data.ByteString.Char8 as B8
import Data.Text (Text)
import qualified Data.Text as T
import qualified Data.Streaming.Text as Stream
import Data.Streaming.Text (DecodeResult(..))
import Control.Monad (join, liftM)
-import Data.Word (Word8)
import Pipes
> for (decodeUtf16BE bytes) encodeUtf8 :: Producer ByteString IO (Producer ByteString IO ())
The bytestring producer that is returned begins with where utf16BE decoding
- failed; it it didn't fail the producer is empty.
+ failed; if it didn't fail the producer is empty.
-}
eof :: Monad m => Lens' (Producer Text m (Producer ByteString m r))
(Producer Text m (Either (Producer ByteString m r) r))
-eof k p = fmap fromEither (k (toEither p)) where
+eof k p0 = fmap fromEither (k (toEither p0)) where
fromEither = liftM (either id return)
decodeStream = loop where
loop dec0 p =
do x <- lift (next p)
- case x of Left r -> return (return r)
- Right (chunk, p') -> case dec0 chunk of
- DecodeResultSuccess text dec -> do yield text
- loop dec p'
- DecodeResultFailure text bs -> do yield text
- return (do yield bs
- p')
+ case x of
+ Left r -> return (return r)
+ Right (chunk, p') -> case dec0 chunk of
+ DecodeResultSuccess text dec -> do yield text
+ loop dec p'
+ DecodeResultFailure text bs -> do yield text
+ return (do yield bs
+ p')
{-# INLINABLE decodeStream#-}
import qualified Data.Text.IO as T
import Pipes
import qualified Pipes.Safe.Prelude as Safe
-import qualified Pipes.Safe as Safe
-import Pipes.Safe (MonadSafe(..), Base(..))
+import Pipes.Safe (MonadSafe(..))
import Prelude hiding (readFile, writeFile)
{- $textio
library
exposed-modules: Pipes.Text, Pipes.Text.Encoding
- build-depends: base >= 4 && < 5 ,
+ build-depends: base >= 4 && < 5 ,
bytestring >= 0.9.2.1 && < 0.11,
text >= 0.11.2 && < 1.3 ,
streaming-commons >= 0.1 && < 0.2 ,
--- /dev/null
+{
+ "folders":
+ [
+ {
+ "follow_symlinks": true,
+ "path": "."
+ }
+ ]
+}