{-# LANGUAGE GADTSyntax #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE UnliftedNewtypes #-} module Data.Text.Short.Unlifted ( ShortText# (..) , lift , unlift ) where import Data.ByteString.Short.Internal as TS import Data.Text.Short (ShortText) import Data.Unlifted (ShortText# (ShortText#)) import qualified Data.Text.Short as TS import qualified Data.Text.Short.Unsafe as TS lift :: ShortText# -> ShortText lift :: ShortText# -> ShortText lift (ShortText# ByteArray# x) = ShortByteString -> ShortText TS.fromShortByteStringUnsafe (ByteArray# -> ShortByteString SBS ByteArray# x) unlift :: ShortText -> ShortText# unlift :: ShortText -> ShortText# unlift ShortText t = case ShortText -> ShortByteString TS.toShortByteString ShortText t of SBS ByteArray# x -> ByteArray# -> ShortText# ShortText# ByteArray# x