deferred-folds 0.6.9 → 0.6.10
raw patch · 4 files changed
+26/−3 lines, 4 filesdep +primitivePVP ok
version bump matches the API change (PVP)
Dependencies added: primitive
API changes (from Hackage documentation)
+ DeferredFolds.Unfold: primArray :: (Prim prim) => PrimArray prim -> Unfold prim
+ DeferredFolds.Unfold: shortByteStringBytes :: ShortByteString -> Unfold Word8
+ DeferredFolds.UnfoldM: primArray :: (Monad m, Prim prim) => PrimArray prim -> UnfoldM m prim
+ DeferredFolds.UnfoldM: shortByteStringBytes :: Monad m => ShortByteString -> UnfoldM m Word8
Files
- deferred-folds.cabal +2/−1
- library/DeferredFolds/Prelude.hs +5/−0
- library/DeferredFolds/Unfold.hs +9/−0
- library/DeferredFolds/UnfoldM.hs +10/−2
deferred-folds.cabal view
@@ -1,7 +1,7 @@ name: deferred-folds version:- 0.6.9+ 0.6.10 category: Folding synopsis:@@ -48,4 +48,5 @@ bytestring >=0.10 && <0.11, containers >=0.5 && <0.6, foldl >=1 && <2,+ primitive >=0.6.4 && <0.7, transformers >=0.5 && <0.6
library/DeferredFolds/Prelude.hs view
@@ -90,3 +90,8 @@ -- bytestring ------------------------- import Data.ByteString as Exports (ByteString)+import Data.ByteString.Short as Exports (ShortByteString)++-- primitive+-------------------------+import Data.Primitive as Exports
library/DeferredFolds/Unfold.hs view
@@ -7,6 +7,7 @@ import qualified Data.Map.Strict as C import qualified Data.IntMap.Strict as D import qualified Data.ByteString as ByteString+import qualified Data.ByteString.Short.Internal as ShortByteString {-|@@ -158,3 +159,11 @@ {-# INLINE byteStringBytes #-} byteStringBytes :: ByteString -> Unfold Word8 byteStringBytes bs = Unfold (\ step init -> ByteString.foldl' step init bs)++{-# INLINE shortByteStringBytes #-}+shortByteStringBytes :: ShortByteString -> Unfold Word8+shortByteStringBytes (ShortByteString.SBS ba#) = primArray (PrimArray ba#)++{-# INLINE primArray #-}+primArray :: (Prim prim) => PrimArray prim -> Unfold prim+primArray ba = Unfold $ \f z -> foldlPrimArray' f z ba
library/DeferredFolds/UnfoldM.hs view
@@ -3,8 +3,8 @@ import DeferredFolds.Prelude hiding (mapM_) import qualified DeferredFolds.Prelude as A-import qualified Data.ByteString as ByteString import qualified Data.ByteString.Internal as ByteString+import qualified Data.ByteString.Short.Internal as ShortByteString {-|@@ -152,7 +152,7 @@ hoist trans1 trans2 (UnfoldM unfold) = UnfoldM $ \ step init -> trans1 (unfold (\ a b -> trans2 (step a b)) init) -{-# INLINE byteStringBytes #-}+{-# INLINABLE byteStringBytes #-} byteStringBytes :: ByteString -> UnfoldM IO Word8 byteStringBytes (ByteString.PS fp off len) = UnfoldM $ \ step init ->@@ -166,3 +166,11 @@ newState <- step state x iterate newState (plusPtr ptr 1) in iterate init (plusPtr ptr off)++{-# INLINE shortByteStringBytes #-}+shortByteStringBytes :: Monad m => ShortByteString -> UnfoldM m Word8+shortByteStringBytes (ShortByteString.SBS ba#) = primArray (PrimArray ba#)++{-# INLINE primArray #-}+primArray :: (Monad m, Prim prim) => PrimArray prim -> UnfoldM m prim+primArray ba = UnfoldM $ \f z -> foldlPrimArrayM' f z ba