on master help sign in
encodeUtf8_1: make available with both bytestring versions
6b6fcd8Bryan O'Sullivan
Data/Text/Encoding.hs+5−4
@@ -81,7 +81,7 @@ import Data.ByteString.Internal as B hiding (c2w)
81#if MIN_VERSION_bytestring(0,10,4)
81#if MIN_VERSION_bytestring(0,10,4)
82import Data.Monoid ((<>))
82import Data.Monoid ((<>))
83import qualified Data.ByteString.Builder as B
83import qualified Data.ByteString.Builder as B
84−import qualified Data.ByteString.Builder.Internal as B
84+import qualified Data.ByteString.Builder.Internal as B hiding (empty)
85import qualified Data.ByteString.Builder.Prim as BP
85import qualified Data.ByteString.Builder.Prim as BP
86import qualified Data.ByteString.Builder.Prim.Internal as BP
86import qualified Data.ByteString.Builder.Prim.Internal as BP
87import qualified Data.ByteString.Lazy as BL
87import qualified Data.ByteString.Lazy as BL
@@ -387,7 +387,7 @@ encodeUtf8BuilderEscaped be =
387
387
388encodeUtf8 = encodeUtf8_0
388encodeUtf8 = encodeUtf8_0
389
389
390−encodeUtf8_0, encodeUtf8_1 :: Text -> ByteString
390+encodeUtf8_0 :: Text -> ByteString
391encodeUtf8_0 (Text arr off len) = unsafeDupablePerformIO $ do
391encodeUtf8_0 (Text arr off len) = unsafeDupablePerformIO $ do
392 let size0 = max len 4
392 let size0 = max len 4
393 mallocByteString size0 >>= start size0 off 0
393 mallocByteString size0 >>= start size0 off 0
@@ -431,6 +431,9 @@ encodeUtf8_0 (Text arr off len) = unsafeDupablePerformIO $ do
431 poke8 (m+2) $ (w .&. 0x3F) + 0x80
431 poke8 (m+2) $ (w .&. 0x3F) + 0x80
432 go (n+1) (m+3)
432 go (n+1) (m+3)
433
433
434+#endif
435+
436+encodeUtf8_1 :: Text -> ByteString
434encodeUtf8_1 (Text arr off len)
437encodeUtf8_1 (Text arr off len)
435 | len == 0 = B.empty
438 | len == 0 = B.empty
436 | otherwise = unsafeDupablePerformIO $ do
439 | otherwise = unsafeDupablePerformIO $ do
@@ -504,8 +507,6 @@ encodeUtf8_1 (Text arr off len)
504 go4 (n+2) (m+4) fp ptr
507 go4 (n+2) (m+4) fp ptr
505 hot n0 m0
508 hot n0 m0
506
509
507−#endif
508−
509-- | Decode text from little endian UTF-16 encoding.
510-- | Decode text from little endian UTF-16 encoding.
510decodeUtf16LEWith :: OnDecodeError -> ByteString -> Text
511decodeUtf16LEWith :: OnDecodeError -> ByteString -> Text
511decodeUtf16LEWith onErr bs = F.unstream (E.streamUtf16LE onErr bs)
512decodeUtf16LEWith onErr bs = F.unstream (E.streamUtf16LE onErr bs)