Safe Haskell | None |
---|---|
Language | Haskell2010 |
NOTE It is recommended to start using Data.Conduit.Combinators instead of this module.
Copyright: 2011 Michael Snoyman, 2010-2011 John Millikin License: MIT
Handle streams of text.
Parts of this code were taken from enumerator and adapted for conduits.
For many purposes, it's recommended to use the conduit-combinators library, which provides a more complete set of functions.
Synopsis
- data Codec
- encode :: MonadThrow m => Codec -> ConduitT Text ByteString m ()
- decode :: MonadThrow m => Codec -> ConduitT ByteString Text m ()
- utf8 :: Codec
- utf16_le :: Codec
- utf16_be :: Codec
- utf32_le :: Codec
- utf32_be :: Codec
- ascii :: Codec
- iso8859_1 :: Codec
- lines :: Monad m => ConduitT Text Text m ()
- linesBounded :: MonadThrow m => Int -> ConduitT Text Text m ()
- data TextException
- takeWhile :: Monad m => ( Char -> Bool ) -> ConduitT Text Text m ()
- dropWhile :: Monad m => ( Char -> Bool ) -> ConduitT Text o m ()
- take :: Monad m => Int -> ConduitT Text Text m ()
- drop :: Monad m => Int -> ConduitT Text o m ()
- foldLines :: Monad m => (a -> ConduitM Text o m a) -> a -> ConduitT Text o m a
- withLine :: Monad m => ConduitT Text Void m a -> ConduitT Text o m ( Maybe a)
- decodeUtf8 :: forall (m :: Type -> Type ). MonadThrow m => ConduitT ByteString Text m ()
- decodeUtf8Lenient :: forall (m :: Type -> Type ). Monad m => ConduitT ByteString Text m ()
- encodeUtf8 :: forall (m :: Type -> Type ) text binary. ( Monad m, Utf8 text binary) => ConduitT text binary m ()
- detectUtf :: MonadThrow m => ConduitT ByteString Text m ()
Text codecs
A specific character encoding.
Since 0.3.0
encode :: MonadThrow m => Codec -> ConduitT Text ByteString m () Source #
Convert text into bytes, using the provided codec. If the codec is not capable of representing an input character, an exception will be thrown.
Since 0.3.0
decode :: MonadThrow m => Codec -> ConduitT ByteString Text m () Source #
Convert bytes into text, using the provided codec. If the codec is not capable of decoding an input byte sequence, an exception will be thrown.
Since 0.3.0
linesBounded :: MonadThrow m => Int -> ConduitT Text Text m () Source #
Variant of the lines function with an integer parameter. The text length of any emitted line never exceeds the value of the parameter. Whenever this is about to happen a LengthExceeded exception is thrown. This function should be used instead of the lines function whenever we are dealing with user input (e.g. a file upload) because we can't be sure that user input won't have extraordinarily large lines which would require large amounts of memory if consumed.
data TextException Source #
Since 0.3.0
DecodeException Codec Word8 | |
EncodeException Codec Char | |
LengthExceeded Int | |
TextException SomeException | |
NewDecodeException ! Text ! Int ! ByteString |
Instances
Show TextException Source # | |
Defined in Data.Conduit.Text |
|
Exception TextException Source # | |
Defined in Data.Conduit.Text |
decodeUtf8 :: forall (m :: Type -> Type ). MonadThrow m => ConduitT ByteString Text m () Source #
Decode a stream of binary data as UTF8.
Since: conduit-1.3.0
decodeUtf8Lenient :: forall (m :: Type -> Type ). Monad m => ConduitT ByteString Text m () Source #
Decode a stream of binary data as UTF8, replacing any invalid bytes with the Unicode replacement character.
Since: conduit-1.3.0
encodeUtf8 :: forall (m :: Type -> Type ) text binary. ( Monad m, Utf8 text binary) => ConduitT text binary m () Source #
Encode a stream of text as UTF8.
Subject to fusion
Since: conduit-1.3.0
detectUtf :: MonadThrow m => ConduitT ByteString Text m () Source #
Automatically determine which UTF variant is being used. This function checks for BOMs, removing them as necessary. It defaults to assuming UTF-8.
Since 1.1.9