@@ -34,6 +34,7 @@ import Control.Exception (assert)
3434#endif
3535import Control.Monad.ST (unsafeIOToST)
3636import Data.Text.Internal (Text(..), empty)
37+import Data.Text.Unsafe (lengthWord16)
3738import qualified Data.Text.Array as A
3839import Data.Word (Word16)
3940import Foreign.Marshal.Alloc (allocaBytes)
@@ -73,13 +74,6 @@ fromPtr ptr len =
7374 A.unsafeWrite marr i =<< unsafeIOToST (peek p)
7475 loop (p `plusPtr` 2) (i + 1)
7576
76−-- | /O(1)/ Return the length of a 'Text' in units of 'Word16'. This
77−-- is useful for sizing a target array appropriately before using
78−-- 'unsafeCopyToPtr'.
79−lengthWord16 :: Text -> Int
80−lengthWord16 (Text _arr _off len) = len
81−{-# INLINE lengthWord16 #-}
82−
8377-- $lowlevel
8478--
8579-- Foreign functions that use UTF-16 internally may return indices in