packages feed

unlifted-0.1.0.0: src/Data/Text/Short/Unlifted.hs

{-# language GADTSyntax #-}
{-# language KindSignatures #-}
{-# language MagicHash #-}
{-# language UnliftedNewtypes #-}

module Data.Text.Short.Unlifted
  ( ShortText#(..)
  , lift
  , unlift
  ) where


import Data.Unlifted (ShortText#(ShortText#))
import Data.Text.Short (ShortText)
import Data.ByteString.Short.Internal as TS

import qualified Data.Text.Short as TS
import qualified Data.Text.Short.Unsafe as TS

lift :: ShortText# -> ShortText
lift (ShortText# x) = TS.fromShortByteStringUnsafe (SBS x)

unlift :: ShortText -> ShortText#
unlift t = case TS.toShortByteString t of
  SBS x -> ShortText# x