{-# LANGUAGE CPP #-} {-# LANGUAGE MagicHash #-} module Database.PostgreSQL.LibPQ.Compat where import Data.ByteString.Internal (ByteString (..)) import Data.Word (Word8) import Foreign.ForeignPtr (ForeignPtr) #if MIN_VERSION_bytestring(0,11,0) import Data.ByteString.Internal (plusForeignPtr) #endif withPS :: ByteString -> (ForeignPtr Word8 -> Int -> Int -> r) -> r #if MIN_VERSION_bytestring(0,11,0) withPS :: forall r. ByteString -> (ForeignPtr Word8 -> Int -> Int -> r) -> r withPS (BS ForeignPtr Word8 fp Int len) ForeignPtr Word8 -> Int -> Int -> r kont = ForeignPtr Word8 -> Int -> Int -> r kont ForeignPtr Word8 fp Int 0 Int len #else withPS (PS fp off len) kont = kont fp off len #endif {-# INLINE withPS #-} mkPS :: ForeignPtr Word8 -> Int -> Int -> ByteString #if MIN_VERSION_bytestring(0,11,0) mkPS :: ForeignPtr Word8 -> Int -> Int -> ByteString mkPS ForeignPtr Word8 fp Int off Int len = ForeignPtr Word8 -> Int -> ByteString BS (ForeignPtr Word8 -> Int -> ForeignPtr Word8 forall a b. ForeignPtr a -> Int -> ForeignPtr b plusForeignPtr ForeignPtr Word8 fp Int off) Int len #else mkPS fp off len = PS fp off len #endif {-# INLINE mkPS #-}