potoki-core 2.2 → 2.2.1
raw patch · 3 files changed
+24/−3 lines, 3 filesnew-uploader
Files
- library/Potoki/Core/Fetch.hs +14/−2
- library/Potoki/Core/Produce.hs +9/−0
- potoki-core.cabal +1/−1
library/Potoki/Core/Fetch.hs view
@@ -22,6 +22,7 @@ finiteMVar, vector, handlingElements,+ lazyByteStringRef, ) where @@ -30,7 +31,8 @@ import qualified Data.Vector as C import qualified Data.ByteString as D import qualified Data.Text.IO as A-+import qualified Data.ByteString.Lazy as B+import qualified Data.ByteString.Lazy.Internal as B deriving instance Functor Fetch @@ -280,4 +282,14 @@ case mbElement of Just element -> xRay element $> mbElement Nothing -> return Nothing- ++{-# INLINE lazyByteStringRef #-}+lazyByteStringRef :: IORef B.ByteString -> Fetch ByteString+lazyByteStringRef ref =+ Fetch $ do+ lazyByteString <- readIORef ref+ case lazyByteString of+ B.Chunk chunk remainders -> do+ writeIORef ref remainders+ return (Just chunk)+ B.Empty -> return Nothing
library/Potoki/Core/Produce.hs view
@@ -12,6 +12,7 @@ directoryContents, finiteMVar, infiniteMVar,+ lazyByteString, ) where @@ -22,6 +23,7 @@ import qualified Data.Vector as C import qualified System.Directory as G import qualified Acquire.Acquire as M+import qualified Data.ByteString.Lazy as D deriving instance Functor Produce@@ -208,3 +210,10 @@ infiniteMVar :: MVar element -> Produce element infiniteMVar var = Produce $ M.Acquire (return (A.infiniteMVar var, return ()))++{-# INLINE lazyByteString #-}+lazyByteString :: D.ByteString -> Produce ByteString+lazyByteString lbs =+ Produce $ M.Acquire $ do+ ref <- newIORef lbs+ return (A.lazyByteStringRef ref, return ())
potoki-core.cabal view
@@ -1,7 +1,7 @@ name: potoki-core version:- 2.2+ 2.2.1 synopsis: Low-level components of "potoki" description: