{-# 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 :: Array -> ByteArray# toUnliftedByteArray (ByteArray ByteArray# a) = ByteArray# a #else toUnliftedByteArray (Array a) = a #endif {-# INLINE fromUnliftedByteArray #-} fromUnliftedByteArray :: ByteArray# -> Array #if MIN_VERSION_text(2,0,0) fromUnliftedByteArray :: ByteArray# -> Array fromUnliftedByteArray = ByteArray# -> Array ByteArray #else fromUnliftedByteArray = Array #endif {-# INLINE fromShortByteString #-} fromShortByteString :: Data.ByteString.Short.ShortByteString -> Array fromShortByteString :: ShortByteString -> Array fromShortByteString (Data.ByteString.Short.Internal.SBS ByteArray# arr) = ByteArray# -> Array fromUnliftedByteArray ByteArray# arr {-# INLINE toShortByteString #-} toShortByteString :: Array -> Data.ByteString.Short.ShortByteString toShortByteString :: Array -> ShortByteString toShortByteString Array a = ByteArray# -> ShortByteString Data.ByteString.Short.Internal.SBS (Array -> ByteArray# toUnliftedByteArray Array a) {-# INLINE fromByteArray #-} fromByteArray :: Data.Primitive.ByteArray.ByteArray -> Array fromByteArray :: ByteArray -> Array fromByteArray (Data.Primitive.ByteArray.ByteArray ByteArray# arr) = ByteArray# -> Array fromUnliftedByteArray ByteArray# arr {-# INLINE toByteArray #-} toByteArray :: Array -> Data.Primitive.ByteArray.ByteArray toByteArray :: Array -> ByteArray toByteArray Array a = ByteArray# -> ByteArray Data.Primitive.ByteArray.ByteArray (Array -> ByteArray# toUnliftedByteArray Array a)