@@ -46,11 +46,9 @@ module Data.Text.Lazy.Encoding
46 , encodeUtf32LE
46 , encodeUtf32LE
47 , encodeUtf32BE
47 , encodeUtf32BE
49−#if MIN_VERSION_bytestring(0,10,4)
50 -- * Encoding Text using ByteString Builders
49 -- * Encoding Text using ByteString Builders
51 , encodeUtf8Builder
50 , encodeUtf8Builder
52 , encodeUtf8BuilderEscaped
51 , encodeUtf8BuilderEscaped
56import Control.Exception (evaluate, try)
54import Control.Exception (evaluate, try)
@@ -60,14 +58,14 @@ import qualified Data.ByteString as S
60import qualified Data.ByteString.Lazy as B
58import qualified Data.ByteString.Lazy as B
61import qualified Data.ByteString.Lazy.Internal as B
59import qualified Data.ByteString.Lazy.Internal as B
62import qualified Data.ByteString.Unsafe as B
60import qualified Data.ByteString.Unsafe as B
63−#if MIN_VERSION_bytestring(0,10,4)
61+
64import Data.Word (Word8)
62import Data.Word (Word8)
65import Data.Monoid (mempty, (<>))
63import Data.Monoid (mempty, (<>))
66import qualified Data.ByteString.Builder as B
64import qualified Data.ByteString.Builder as B
67import qualified Data.ByteString.Builder.Extra as B (safeStrategy, toLazyByteStringWith)
65import qualified Data.ByteString.Builder.Extra as B (safeStrategy, toLazyByteStringWith)
68import qualified Data.ByteString.Builder.Prim as BP
66import qualified Data.ByteString.Builder.Prim as BP
69import qualified Data.Text as T
67import qualified Data.Text as T
71import qualified Data.Text.Encoding as TE
69import qualified Data.Text.Encoding as TE
72import qualified Data.Text.Lazy as L
70import qualified Data.Text.Lazy as L
73import qualified Data.Text.Internal.Lazy.Encoding.Fusion as E
71import qualified Data.Text.Internal.Lazy.Encoding.Fusion as E
@@ -149,7 +147,6 @@ decodeUtf8' bs = unsafeDupablePerformIO $ do
149{-# INLINE decodeUtf8' #-}
147{-# INLINE decodeUtf8' #-}
151encodeUtf8 :: Text -> B.ByteString
149encodeUtf8 :: Text -> B.ByteString
152−#if MIN_VERSION_bytestring(0,10,4)
153encodeUtf8 Empty = B.empty
150encodeUtf8 Empty = B.empty
154encodeUtf8 lt@(Chunk t _) =
151encodeUtf8 lt@(Chunk t _) =
155 B.toLazyByteStringWith strategy B.empty $ encodeUtf8Builder lt
152 B.toLazyByteStringWith strategy B.empty $ encodeUtf8Builder lt
@@ -170,11 +167,6 @@ encodeUtf8BuilderEscaped :: BP.BoundedPrim Word8 -> Text -> B.Builder
170encodeUtf8BuilderEscaped prim =
167encodeUtf8BuilderEscaped prim =
171 foldrChunks (\c b -> TE.encodeUtf8BuilderEscaped prim c <> b) mempty
168 foldrChunks (\c b -> TE.encodeUtf8BuilderEscaped prim c <> b) mempty
174−encodeUtf8 (Chunk c cs) = B.Chunk (TE.encodeUtf8 c) (encodeUtf8 cs)
175−encodeUtf8 Empty = B.Empty
178-- | Decode text from little endian UTF-16 encoding.
170-- | Decode text from little endian UTF-16 encoding.
179decodeUtf16LEWith :: OnDecodeError -> B.ByteString -> Text
171decodeUtf16LEWith :: OnDecodeError -> B.ByteString -> Text
180decodeUtf16LEWith onErr bs = F.unstream (E.streamUtf16LE onErr bs)
172decodeUtf16LEWith onErr bs = F.unstream (E.streamUtf16LE onErr bs)