1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
{-# LANGUAGE CPP #-}
module IsomorphismClass.TextCompat.Array where
import qualified Data.ByteString.Short
import qualified Data.ByteString.Short.Internal
import qualified Data.Primitive.ByteArray
import Data.Text.Array
import GHC.Exts (ByteArray#)
{-# INLINE toUnliftedByteArray #-}
toUnliftedByteArray :: Array -> ByteArray#
#if MIN_VERSION_text(2,0,0)
toUnliftedByteArray (ByteArray a) = a
#else
toUnliftedByteArray (Array a) = a
#endif
{-# INLINE fromUnliftedByteArray #-}
fromUnliftedByteArray :: ByteArray# -> Array
#if MIN_VERSION_text(2,0,0)
fromUnliftedByteArray = ByteArray
#else
fromUnliftedByteArray = Array
#endif
{-# INLINE fromShortByteString #-}
fromShortByteString :: Data.ByteString.Short.ShortByteString -> Array
fromShortByteString (Data.ByteString.Short.Internal.SBS arr) =
fromUnliftedByteArray arr
{-# INLINE toShortByteString #-}
toShortByteString :: Array -> Data.ByteString.Short.ShortByteString
toShortByteString a =
Data.ByteString.Short.Internal.SBS (toUnliftedByteArray a)
{-# INLINE fromByteArray #-}
fromByteArray :: Data.Primitive.ByteArray.ByteArray -> Array
fromByteArray (Data.Primitive.ByteArray.ByteArray arr) =
fromUnliftedByteArray arr
{-# INLINE toByteArray #-}
toByteArray :: Array -> Data.Primitive.ByteArray.ByteArray
toByteArray a =
Data.Primitive.ByteArray.ByteArray (toUnliftedByteArray a)
|