@@ -1,11 +1,14 @@
11{-# LANGUAGE MagicHash #-}
22
3−module Data.Text.Utf16 where
3+module Data.Text.Utf16
4+ (
5+ chr2
6+ , validate1
7+ , validate2
8+ ) where
49
510import GHC.Exts
6−import GHC.Word
7−
8−import Data.Word
11+import GHC.Word (Word16(..))
912
1013chr2 :: Word16 -> Word16 -> Char
1114chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
@@ -18,7 +21,9 @@ chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
1821
1922validate1 :: Word16 -> Bool
2023validate1 x1 = (x1 >= 0 && x1 < 0xD800) || (x1 > 0xDFFF && x1 < 0x10000)
24+{-# INLINE validate1 #-}
2125
2226validate2 :: Word16 -> Word16 -> Bool
23−validate2 x1 x2 = (x1 >= 0xD800 && x1 <= 0xDBFF) &&
24− (x2 >= 0xDC00 && x2 <= 0xDFFF)
27+validate2 x1 x2 = x1 >= 0xD800 && x1 <= 0xDBFF &&
28+ x2 >= 0xDC00 && x2 <= 0xDFFF
29+{-# INLINE validate2 #-}