packages feed

streamly-bytestring 0.2.0 → 0.2.1

raw patch · 5 files changed

+49/−12 lines, 5 filesdep ~bytestringdep ~streamly-core

Dependency ranges changed: bytestring, streamly-core

Files

Changelog.md view
@@ -1,5 +1,9 @@ # Changelog for streamly-bytestring +## 0.2.1 (Dec 2023)++* Support streamly-core-0.2.0+ ## 0.2.0 (Mar 2023)  * Support streamly-core-0.1.0
src/Streamly/External/ByteString.hs view
@@ -37,25 +37,39 @@  -- Internal imports import Data.ByteString.Internal (ByteString(..))-import Streamly.Internal.Data.Array.Type (Array(..))-import Streamly.Internal.Data.Unboxed (MutableByteArray(..)) import Streamly.Internal.System.IO (unsafeInlineIO)  import qualified Streamly.Data.Array as Array import qualified Streamly.Internal.Data.Unfold as Unfold (fold, mkUnfoldrM)-import qualified Streamly.Internal.Data.Unboxed as Unboxed (nil)++#if MIN_VERSION_streamly_core(0,2,0)+import Streamly.Internal.Data.Array (Array(..))+import Streamly.Internal.Data.MutByteArray (MutByteArray(..))+import qualified Streamly.Internal.Data.MutByteArray as MutBA (nil)+import qualified Streamly.Internal.Data.Stream as StreamD (Step(Yield))+#else+import Streamly.Internal.Data.Array.Type (Array(..))+import Streamly.Internal.Data.Unboxed (MutableByteArray(..))+import qualified Streamly.Internal.Data.Unboxed as MutBA (nil) import qualified Streamly.Internal.Data.Stream.StreamD as StreamD (Step(Yield))+#endif  import Prelude hiding (read) +#if MIN_VERSION_streamly_core(0,2,0)+#define MUT_BYTE_ARRAY MutByteArray+#else+#define MUT_BYTE_ARRAY MutableByteArray+#endif+ {-# INLINE mutableByteArrayContents# #-} mutableByteArrayContents# :: MutableByteArray# RealWorld -> Addr# mutableByteArrayContents# marr# = byteArrayContents# (unsafeCoerce# marr#)  -- | Helper function that creates a ForeignPtr {-# INLINE makeForeignPtr #-}-makeForeignPtr :: MutableByteArray -> Int -> ForeignPtr a-makeForeignPtr (MutableByteArray marr#) (I# off#) =+makeForeignPtr :: MUT_BYTE_ARRAY -> Int -> ForeignPtr a+makeForeignPtr (MUT_BYTE_ARRAY marr#) (I# off#) =     ForeignPtr         (mutableByteArrayContents# marr# `plusAddr#` off#)         (PlainPtr marr#)@@ -66,10 +80,10 @@ {-# INLINE toArray #-} toArray :: ByteString -> Array Word8 toArray (BS (ForeignPtr addr# _) _)-    | Ptr addr# == nullPtr = Array Unboxed.nil 0 0+    | Ptr addr# == nullPtr = Array MutBA.nil 0 0 toArray (BS (ForeignPtr addr# (PlainPtr marr#)) len) =     let off = I# (addr# `minusAddr#` mutableByteArrayContents# marr#)-     in Array (MutableByteArray marr#) off (off + len)+     in Array (MUT_BYTE_ARRAY marr#) off (off + len) toArray (BS fptr len) =     unsafeInlineIO         $ withForeignPtr fptr $ Unfold.fold (Array.writeN len) generator@@ -85,10 +99,12 @@ -- is performed in constant time. {-# INLINE fromArray #-} fromArray :: Array Word8 -> ByteString-fromArray Array {..}+fromArray (Array {..})     | aLen == 0 = mempty     | otherwise = BS (makeForeignPtr arrContents arrStart) aLen-  where++    where+     aLen = arrEnd - arrStart  -- | Unfold a strict ByteString to a stream of Word8.
src/Streamly/External/ByteString/Lazy.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP             #-}+ module Streamly.External.ByteString.Lazy   ( chunkReader   , reader@@ -19,8 +21,14 @@  -- Internal imports import Data.ByteString.Lazy.Internal (ByteString(..), chunk)-import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))++#if MIN_VERSION_streamly_core(0,2,0)+import Streamly.Internal.Data.Unfold (Unfold(..))+import Streamly.Internal.Data.Stream (Step(..))+#else import Streamly.Internal.Data.Unfold.Type (Unfold(..))+import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))+#endif  import qualified Streamly.External.ByteString as Strict import qualified Streamly.Data.Array as Array
streamly-bytestring.cabal view
@@ -1,6 +1,6 @@ cabal-version:  1.12 name:           streamly-bytestring-version:        0.2.0+version:        0.2.1 synopsis:       Library for streamly and bytestring interoperation. description:    Please see the README on GitHub at <https://github.com/psibi/streamly-bytestring#readme> category:       Streamly, Stream, ByteString@@ -21,6 +21,7 @@             , GHC==9.0.1             , GHC==9.2.7             , GHC==9.4.4+            , GHC==9.6.2  source-repository head   type: git@@ -44,7 +45,9 @@                  -- windows.                  || ( >= 0.11.3.1 && < 0.11.4 )                  || == 0.11.4.*-    , streamly-core == 0.1.0.*+                 || == 0.11.5.*+                 || == 0.12.0.*+    , streamly-core >= 0.1.0 && < 0.2.2   default-language: Haskell2010  test-suite sb-test
test/Main.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-}  module Main where@@ -14,7 +15,12 @@ import Test.QuickCheck.Instances.ByteString ()  -- Internal imports+#if MIN_VERSION_streamly_core(0,2,0)+import Streamly.Internal.Data.Array (Array(..))+#else import Streamly.Internal.Data.Array.Type (Array(..))+#endif+  import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BSL