{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE MagicHash #-}
module Data.Prim.Memory.Text
( Text(..)
, MText(..)
, Array(..)
, MArray(..)
, toBytesArray
, fromBytesArray
, toMBytesMArray
, fromMBytesMArray
) where
import Data.Text.Array
import Data.Text.Internal
import Data.Prim.Memory.Bytes.Internal
( Bytes(..)
, MBytes(..)
, Pinned(..)
)
data MText s =
MText
{-# UNPACK #-}!(MArray s)
{-# UNPACK #-}!Int
{-# UNPACK #-}!Int
toBytesArray :: Array -> Bytes 'Inc
toBytesArray (Array ba#) = Bytes ba#
{-# INLINE toBytesArray #-}
fromBytesArray :: Bytes p -> Array
fromBytesArray (Bytes ba#) = Array ba#
{-# INLINE fromBytesArray #-}
toMBytesMArray :: MArray s -> MBytes 'Inc s
toMBytesMArray (MArray mba#) = MBytes mba#
{-# INLINE toMBytesMArray #-}
fromMBytesMArray :: MBytes p s -> MArray s
fromMBytesMArray (MBytes ba#) = MArray ba#
{-# INLINE fromMBytesMArray #-}