on master help sign in
Move Utf* modules into Data.Text.Encoding
74eaa00Bryan O'Sullivan
Data/Text.hs+1−1
@@ -163,7 +163,7 @@ import Data.Text.Internal (Text(..), empty, text)
163import qualified Prelude as P
163import qualified Prelude as P
164import Data.Text.Unsafe (iter, iter_, unsafeHead, unsafeTail)
164import Data.Text.Unsafe (iter, iter_, unsafeHead, unsafeTail)
165import Data.Text.UnsafeChar (unsafeChr)
165import Data.Text.UnsafeChar (unsafeChr)
166−import qualified Data.Text.Utf16 as U16
166+import qualified Data.Text.Encoding.Utf16 as U16
167
167
168-- $fusion
168-- $fusion
169--
169--
Data/Text/Encoding.hs−7
@@ -24,7 +24,6 @@ module Data.Text.Encoding
24 , decodeUtf32BE
24 , decodeUtf32BE
25
25
26 -- * Encoding Text to ByteStrings
26 -- * Encoding Text to ByteStrings
27− , encodeASCII
28 , encodeUtf8
27 , encodeUtf8
29 , encodeUtf16LE
28 , encodeUtf16LE
30 , encodeUtf16BE
29 , encodeUtf16BE
@@ -47,12 +46,6 @@ decodeUtf8 :: ByteString -> Text
47decodeUtf8 bs = F.unstream (E.streamUtf8 bs)
46decodeUtf8 bs = F.unstream (E.streamUtf8 bs)
48{-# INLINE decodeUtf8 #-}
47{-# INLINE decodeUtf8 #-}
49
48
50−-- | Encode text using a 7-bit ASCII representation. /Note/: non-ASCII
51−-- characters in the input 'Text' will be /truncated/.
52−encodeASCII :: Text -> ByteString
53−encodeASCII txt = E.unstream (E.restreamASCII (F.stream txt))
54−{-# INLINE encodeASCII #-}
55−
56-- | Encode text using UTF-8 encoding.
49-- | Encode text using UTF-8 encoding.
57encodeUtf8 :: Text -> ByteString
50encodeUtf8 :: Text -> ByteString
58encodeUtf8 txt = E.unstream (E.restreamUtf8 (F.stream txt))
51encodeUtf8 txt = E.unstream (E.restreamUtf8 (F.stream txt))
Data/Text/Encoding/Fusion.hs+3−14
@@ -31,7 +31,6 @@ module Data.Text.Encoding.Fusion
31 -- * Restreaming
31 -- * Restreaming
32 -- Restreaming is the act of converting from one 'Stream'
32 -- Restreaming is the act of converting from one 'Stream'
33 -- representation to another.
33 -- representation to another.
34− , restreamASCII
35 , restreamUtf8
34 , restreamUtf8
36 , restreamUtf16LE
35 , restreamUtf16LE
37 , restreamUtf16BE
36 , restreamUtf16BE
@@ -52,9 +51,9 @@ import Foreign.Storable (pokeByteOff)
52import System.IO.Unsafe (unsafePerformIO)
51import System.IO.Unsafe (unsafePerformIO)
53import qualified Data.ByteString as B
52import qualified Data.ByteString as B
54import qualified Data.ByteString.Unsafe as B
53import qualified Data.ByteString.Unsafe as B
55−import qualified Data.Text.Utf16 as U16
54+import qualified Data.Text.Encoding.Utf8 as U8
55+import qualified Data.Text.Encoding.Utf16 as U16
56−import qualified Data.Text.Utf32 as U32
56+import qualified Data.Text.Encoding.Utf32 as U32
57−import qualified Data.Text.Utf8 as U8
58
57
59-- Specialised, strict Maybe-like type.
58-- Specialised, strict Maybe-like type.
60data M = N
59data M = N
@@ -175,16 +174,6 @@ streamUtf32LE bs = Stream next 0 l
175 idx = fromIntegral . B.unsafeIndex bs :: Int -> Word32
174 idx = fromIntegral . B.unsafeIndex bs :: Int -> Word32
176{-# INLINE [0] streamUtf32LE #-}
175{-# INLINE [0] streamUtf32LE #-}
177
176
178−restreamASCII :: Stream Char -> Stream Word8
179−restreamASCII (Stream next0 s0 len) = Stream next s0 (len*2)
180− where
181− next !s = case next0 s of
182− Done -> Done
183− Skip s' -> Skip s'
184− Yield x xs -> Yield x' xs
185− where x' = fromIntegral (ord x) :: Word8
186−{-# INLINE restreamASCII #-}
187−
188-- | /O(n)/ Convert a Stream Char into a UTF-8 encoded Stream Word8.
177-- | /O(n)/ Convert a Stream Char into a UTF-8 encoded Stream Word8.
189restreamUtf8 :: Stream Char -> Stream Word8
178restreamUtf8 :: Stream Char -> Stream Word8
190restreamUtf8 (Stream next0 s0 len) =
179restreamUtf8 (Stream next0 s0 len) =
Data/Text/Utf16.hs → Data/Text/Encoding/Utf16.hsrenamed+2−2
@@ -1,7 +1,7 @@
1{-# LANGUAGE MagicHash #-}
1{-# LANGUAGE MagicHash #-}
2
2
3-- |
3-- |
4−-- Module : Data.Text.Utf16
4+-- Module : Data.Text.Encoding.Utf16
5-- Copyright : (c) Tom Harper 2008-2009,
5-- Copyright : (c) Tom Harper 2008-2009,
6-- (c) Bryan O'Sullivan 2009,
6-- (c) Bryan O'Sullivan 2009,
7-- (c) Duncan Coutts 2009
7-- (c) Duncan Coutts 2009
@@ -13,7 +13,7 @@
13-- Portability : GHC
13-- Portability : GHC
14--
14--
15-- Basic UTF-16 validation and character manipulation.
15-- Basic UTF-16 validation and character manipulation.
16−module Data.Text.Utf16
16+module Data.Text.Encoding.Utf16
17 (
17 (
18 chr2
18 chr2
19 , validate1
19 , validate1
Data/Text/Utf32.hs → Data/Text/Encoding/Utf32.hsrenamed+2−2
@@ -1,5 +1,5 @@
1-- |
1-- |
2−-- Module : Data.Text.Utf16
2+-- Module : Data.Text.Encoding.Utf16
3-- Copyright : (c) Tom Harper 2008-2009,
3-- Copyright : (c) Tom Harper 2008-2009,
4-- (c) Bryan O'Sullivan 2009,
4-- (c) Bryan O'Sullivan 2009,
5-- (c) Duncan Coutts 2009
5-- (c) Duncan Coutts 2009
@@ -11,7 +11,7 @@
11-- Portability : portable
11-- Portability : portable
12--
12--
13-- Basic UTF-32 validation.
13-- Basic UTF-32 validation.
14−module Data.Text.Utf32
14+module Data.Text.Encoding.Utf32
15 (
15 (
16 validate
16 validate
17 ) where
17 ) where
Data/Text/Utf8.hs → Data/Text/Encoding/Utf8.hsrenamed+2−2
@@ -1,7 +1,7 @@
1{-# LANGUAGE MagicHash #-}
1{-# LANGUAGE MagicHash #-}
2
2
3-- |
3-- |
4−-- Module : Data.Text.Utf16
4+-- Module : Data.Text.Encoding.Utf16
5-- Copyright : (c) Tom Harper 2008-2009,
5-- Copyright : (c) Tom Harper 2008-2009,
6-- (c) Bryan O'Sullivan 2009,
6-- (c) Bryan O'Sullivan 2009,
7-- (c) Duncan Coutts 2009
7-- (c) Duncan Coutts 2009
@@ -13,7 +13,7 @@
13-- Portability : GHC
13-- Portability : GHC
14--
14--
15-- Basic UTF-8 validation and character manipulation.
15-- Basic UTF-8 validation and character manipulation.
16−module Data.Text.Utf8
16+module Data.Text.Encoding.Utf8
17 (
17 (
18 -- Decomposition
18 -- Decomposition
19 ord2
19 ord2
Data/Text/Fusion.hs+1−1
@@ -115,7 +115,7 @@ import Data.Text.Internal (Text(..))
115import Data.Text.UnsafeChar (unsafeChr, unsafeWrite, unsafeWriteRev)
115import Data.Text.UnsafeChar (unsafeChr, unsafeWrite, unsafeWriteRev)
116import qualified Data.Text.Array as A
116import qualified Data.Text.Array as A
117import qualified Data.Text.Internal as I
117import qualified Data.Text.Internal as I
118−import qualified Data.Text.Utf16 as U16
118+import qualified Data.Text.Encoding.Utf16 as U16
119import qualified Prelude as P
119import qualified Prelude as P
120
120
121default(Int)
121default(Int)
Data/Text/Unsafe.hs+1−1
@@ -20,7 +20,7 @@ module Data.Text.Unsafe
20import Control.Exception (assert)
20import Control.Exception (assert)
21import Data.Text.Internal (Text(..))
21import Data.Text.Internal (Text(..))
22import Data.Text.UnsafeChar (unsafeChr)
22import Data.Text.UnsafeChar (unsafeChr)
23−import Data.Text.Utf16 (chr2)
23+import Data.Text.Encoding.Utf16 (chr2)
24import qualified Data.Text.Array as A
24import qualified Data.Text.Array as A
25
25
26-- | /O(1)/ A variant of 'head' for non-empty 'Text'. 'unsafeHead'
26-- | /O(1)/ A variant of 'head' for non-empty 'Text'. 'unsafeHead'
text.cabal+3−3
@@ -24,9 +24,9 @@ library
24 Data.Text.Internal
24 Data.Text.Internal
25 Data.Text.Unsafe
25 Data.Text.Unsafe
26 Data.Text.UnsafeChar
26 Data.Text.UnsafeChar
27− Data.Text.Utf8
27+ Data.Text.Encoding.Utf8
28− Data.Text.Utf32
28+ Data.Text.Encoding.Utf16
29− Data.Text.Utf16
29+ Data.Text.Encoding.Utf32
30
30
31 build-depends:
31 build-depends:
32 base < 5,
32 base < 5,