{-# LANGUAGE CPP, NoImplicitPrelude #-} #if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE Trustworthy #-} #endif -- | Convert our @'ByteString's@ to and from /legacy/ @'Legacy.ByteString's@ -- (from the @bytestring@ package). module Data.Vector.Storable.ByteString.Legacy where -------------------------------------------------------------------------------- -- Imports -------------------------------------------------------------------------------- -- from vector: import qualified Data.Vector.Storable as VS -- from bytestring: import qualified Data.ByteString.Internal as Legacy ( ByteString(PS) ) -- from vector-bytestring (this package): import Data.Vector.Storable.ByteString.Internal ( ByteString ) -------------------------------------------------------------------------------- -- Legacy conversions -------------------------------------------------------------------------------- -- | O(1) Convert our 'ByteString' to a /legacy/ 'Legacy.ByteString' -- (from the @bytestring@ package). toLegacyByteString :: ByteString -> Legacy.ByteString toLegacyByteString v = Legacy.PS fp s l where (fp, s, l) = VS.unsafeToForeignPtr v {-# INLINE toLegacyByteString #-} -- | O(1) Convert a /legacy/ 'Legacy.ByteString' (from the @bytestring@ package) -- to our 'ByteString'. fromLegacyByteString :: Legacy.ByteString -> ByteString fromLegacyByteString (Legacy.PS fp s l) = VS.unsafeFromForeignPtr fp s l {-# INLINE fromLegacyByteString #-}