conduit-zstd 0.0.1.1 → 0.0.2.0
raw patch · 5 files changed
+41/−26 lines, 5 filesdep +quickcheck-instancesdep +tastydep +tasty-quickcheckdep −HUnitdep −test-frameworkdep −test-framework-hunitPVP ok
version bump matches the API change (PVP)
Dependencies added: quickcheck-instances, tasty, tasty-quickcheck
Dependencies removed: HUnit, test-framework, test-framework-hunit, test-framework-th
API changes (from Hackage documentation)
Files
- ChangeLog +7/−0
- Data/Conduit/Zstd.hs +6/−2
- README.md +5/−0
- conduit-zstd.cabal +10/−10
- tests/Tests.hs +13/−14
ChangeLog view
@@ -1,2 +1,9 @@+Version 0.0.2.0 2020-05-21 by luispedro+ * Do not stop if an empty bytestring is present in the stream (PR #1 by+ Kamil Dworakowski)++Version 0.0.1.1 2018-09-23 by luispedro+ * Update to newer conduit API+ Version 0.0.1 2018-02-12 by luispedro * First version
Data/Conduit/Zstd.hs view
@@ -26,8 +26,12 @@ go (Z.Produce r next) = do C.yield r liftIO next >>= go-go (Z.Consume f) = do+go input@(Z.Consume f) = do next <- C.await- liftIO (f $ fromMaybe B.empty next) >>= go+ case next of+ Just chunk | B.null chunk ->+ go input+ _ ->+ liftIO (f $ fromMaybe B.empty next) >>= go go (Z.Error m e) = liftIO (throwIO $ userError ("ZStandard error :" ++ m ++ ": " ++ e)) go (Z.Done r) = C.yield r
README.md view
@@ -1,5 +1,10 @@ # ZStandard conduit wrappers +[](https://hackage.haskell.org/package/conduit-zstd)+[](http://packdeps.haskellers.com/feed?needle=conduit-zstd)+[](https://travis-ci.com/luispedro/conduit-zstd)+ZStandard compression as a Conduit+ Very thin wrapper around the [hs-zstd](https://github.com/facebookexperimental/hs-zstd) Haskell bindings for the [ZStandard compresssion library](http://facebook.github.io/zstd/).
conduit-zstd.cabal view
@@ -1,11 +1,13 @@--- This file has been generated from package.yaml by hpack version 0.28.2.+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.31.2. -- -- see: https://github.com/sol/hpack ----- hash: 94312fcbf7a04a82f6bd1d17999b3a961a652668f01575cccbffe4a5ece400b5+-- hash: d730a92da866d784257a2ed593c3cb0ab481913627b9558c473171afbf32f4e8 name: conduit-zstd-version: 0.0.1.1+version: 0.0.2.0 synopsis: Conduit-based ZStd Compression description: Zstandard compression packaged as a conduit. This is a very thin wrapper around the [official hs-zstd interface](https://github.com/facebookexperimental/hs-zstd/) category: Conduit@@ -16,10 +18,9 @@ license: MIT license-file: COPYING build-type: Simple-cabal-version: >= 1.10 extra-source-files:- ChangeLog README.md+ ChangeLog source-repository head type: git@@ -49,16 +50,15 @@ default-extensions: BangPatterns OverloadedStrings LambdaCase TupleSections ghc-options: -Wall build-depends:- HUnit- , base >4.8 && <5+ base >4.8 && <5 , bytestring , conduit , conduit-combinators , conduit-extra , conduit-zstd , directory- , test-framework- , test-framework-hunit- , test-framework-th+ , quickcheck-instances+ , tasty+ , tasty-quickcheck , zstd default-language: Haskell2010
tests/Tests.hs view
@@ -4,22 +4,21 @@ {-# LANGUAGE TemplateHaskell, QuasiQuotes, FlexibleContexts, OverloadedStrings #-} module Main where -import Test.Framework.TH-import Test.HUnit-import Test.Framework.Providers.HUnit+import Test.Tasty+import Test.Tasty.QuickCheck+import Test.QuickCheck.Instances () import qualified Data.ByteString as B-import qualified Data.Conduit as C-import qualified Data.Conduit.Combinators as CC-import qualified Data.Conduit.List as CL-import Data.Conduit ((.|))+import Conduit+import Data.Conduit.List (sourceList) -import qualified Data.Conduit.Zstd as CZ+import Data.Conduit.Zstd -main :: IO ()-main = $(defaultMainGenerator)+tests :: TestTree+tests =+ testProperty "roundtrip" $ \input -> ioProperty $ do+ output' <- runConduit (sourceList input .| compress 1 .| decompress .| sinkList)+ pure $ B.concat input === B.concat output' -case_basic :: IO ()-case_basic = do- hello <- B.concat <$> (C.runConduitRes (CC.yieldMany ["Hello", " ", "World"] .| CZ.compress 2 .| CZ.decompress .| CL.consume))- hello @?= "Hello World"+main :: IO ()+main = defaultMain tests