packages feed

fold-debounce-conduit 0.2.0.6 → 0.2.0.7

raw patch · 4 files changed

+66/−55 lines, 4 filesdep ~basedep ~resourcetPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, resourcet

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for fold-debounce-conduit +## 0.2.0.7  -- 2022-11-25++* Confirm test with `base-4.16.4.0` (ghc-9.2.5) and `resourcet-1.3.0`.+* Use stylish-haskell.+ ## 0.2.0.6  -- 2021-02-28  * Confirm test with `base-4.15.0.0` (ghc-9.0.1)
fold-debounce-conduit.cabal view
@@ -1,5 +1,5 @@ name:                   fold-debounce-conduit-version:                0.2.0.6+version:                0.2.0.7 author:                 Toshio Ito <debug.ito@gmail.com> maintainer:             Toshio Ito <debug.ito@gmail.com> license:                BSD3@@ -20,10 +20,10 @@   exposed-modules:      Data.Conduit.FoldDebounce   -- other-modules:   default-extensions:   FlexibleContexts-  build-depends:        base >=4.9.0 && <4.16,+  build-depends:        base >=4.9.0 && <4.17,                         conduit >=1.3.0 && <1.4,                         fold-debounce >=0.2.0 && <0.3,-                        resourcet >=1.2.0 && <1.3,+                        resourcet >=1.2.0 && <1.4,                         stm >=2.4.4.1 && <2.6,                         transformers >=0.5.2 && <0.6,                         transformers-base >=0.4.4 && <0.5
src/Data/Conduit/FoldDebounce.hs view
@@ -2,20 +2,20 @@ -- Module: Data.Conduit.FoldDebounce -- Description: Regulate input traffic from conduit Source with Control.FoldDebounce -- Maintainer: Toshio Ito <debug.ito@gmail.com>--- +-- -- Synopsis: -- -- > module Main (main) where--- > +-- > -- > import Data.Conduit (ConduitT, yield, runConduit, (.|)) -- > import qualified Data.Conduit.List as CL -- > import Data.Void (Void) -- > import Control.Concurrent (threadDelay) -- > import Control.Monad.IO.Class (liftIO) -- > import Control.Monad.Trans.Resource (ResourceT, runResourceT)--- > +-- > -- > import qualified Data.Conduit.FoldDebounce as F--- > +-- > -- > fastSource :: Int -> ConduitT () Int (ResourceT IO) () -- > fastSource max_num = fastStream' 0 where -- >   fastStream' count = do@@ -25,10 +25,10 @@ -- >       else do -- >         liftIO $ threadDelay 100000 -- >         fastStream' (count + 1)--- > +-- > -- > printSink :: Show a => ConduitT a Void (ResourceT IO) () -- > printSink = CL.mapM_ (liftIO . putStrLn . show)--- > +-- > -- > main :: IO () -- > main = do -- >   putStrLn "-- Before debounce"@@ -39,7 +39,7 @@ -- >                              F.def { F.delay = 500000 } -- >   putStrLn "-- After debounce" -- >   runResourceT $ runConduit $ debouncer (fastSource 10) .| printSink--- +-- -- Result: -- -- > -- Before debounce@@ -68,35 +68,36 @@ -- (specified by 'delay' option). -- -- See "Control.FoldDebounce" for detail.-module Data.Conduit.FoldDebounce (-  debounce,-  -- * Re-exports-  Args(..),-  Opts,-  def,-  -- ** Accessors for 'Opts'-  delay,-  alwaysResetTimer,-  -- * Preset parameters-  forStack, forMonoid, forVoid-) where+module Data.Conduit.FoldDebounce+    ( debounce+      -- * Re-exports+    , Args (..)+    , Opts+    , def+      -- ** Accessors for 'Opts'+    , delay+    , alwaysResetTimer+      -- * Preset parameters+    , forStack+    , forMonoid+    , forVoid+    ) where -import Prelude hiding (init)-import Control.Monad (void)-import Data.Monoid (Monoid)-import Data.Void (Void)+import           Control.Monad                (void)+import           Data.Monoid                  (Monoid)+import           Data.Void                    (Void)+import           Prelude                      hiding (init) -import Control.FoldDebounce (Args(Args,cb,fold,init),-                             Opts, delay, alwaysResetTimer, def)-import qualified Control.FoldDebounce as F-import Data.Conduit (ConduitT, await, (.|), bracketP, yield, runConduit)-import Control.Monad.Trans.Resource (MonadResource, MonadUnliftIO,-                                     allocate, register, release, resourceForkIO, runResourceT)-import Control.Monad.Trans.Class (lift)-import Control.Monad.IO.Class (MonadIO, liftIO)-import Control.Concurrent.STM (newTChanIO, writeTChan, readTChan,-                               atomically,-                               TVar, readTVar, newTVarIO, writeTVar)+import           Control.Concurrent.STM       (TVar, atomically, newTChanIO, newTVarIO, readTChan,+                                               readTVar, writeTChan, writeTVar)+import           Control.FoldDebounce         (Args (Args, cb, fold, init), Opts, alwaysResetTimer,+                                               def, delay)+import qualified Control.FoldDebounce         as F+import           Control.Monad.IO.Class       (MonadIO, liftIO)+import           Control.Monad.Trans.Class    (lift)+import           Control.Monad.Trans.Resource (MonadResource, MonadUnliftIO, allocate, register,+                                               release, resourceForkIO, runResourceT)+import           Data.Conduit                 (ConduitT, await, bracketP, runConduit, yield, (.|))  -- | Debounce conduit source with "Control.FoldDebounce". The data -- stream from the original source (type @i@) is debounced and folded@@ -130,10 +131,11 @@       case mgot of        OutFinished -> return ()        OutData got -> yield got >> keepYield out_chan-      + -- | Internal data type for output channel.-data OutData o = OutData o-               | OutFinished+data OutData o+  = OutData o+  | OutFinished  trigSink :: (MonadIO m) => F.Trigger i o -> TVar Bool -> ConduitT i Void m () trigSink trig out_termed = trigSink' where
test/Data/Conduit/FoldDebounceSpec.hs view
@@ -1,19 +1,23 @@-module Data.Conduit.FoldDebounceSpec (main, spec) where+module Data.Conduit.FoldDebounceSpec+    ( main+    , spec+    ) where -import Test.Hspec+import           Test.Hspec -import Control.Applicative ((<$>))-import Control.Concurrent (threadDelay, myThreadId)-import Control.Concurrent.STM (atomically, TVar, newTVarIO, writeTVar, readTVar, retry)-import Control.Monad (forM_, void)-import Control.Monad.IO.Class (liftIO)-import Control.Monad.Trans.Resource (ResourceT, runResourceT, register)-import Data.Conduit (ConduitT, (.|), yield, bracketP, runConduit)-import qualified Data.Conduit.FoldDebounce as F-import qualified Data.Conduit.List as CL-import Data.Maybe (isJust)-import Data.Monoid (Monoid)-import System.Timeout (timeout)+import           Control.Applicative          ((<$>))+import           Control.Concurrent           (myThreadId, threadDelay)+import           Control.Concurrent.STM       (TVar, atomically, newTVarIO, readTVar, retry,+                                               writeTVar)+import           Control.Monad                (forM_, void)+import           Control.Monad.IO.Class       (liftIO)+import           Control.Monad.Trans.Resource (ResourceT, register, runResourceT)+import           Data.Conduit                 (ConduitT, bracketP, runConduit, yield, (.|))+import qualified Data.Conduit.FoldDebounce    as F+import qualified Data.Conduit.List            as CL+import           Data.Maybe                   (isJust)+import           Data.Monoid                  (Monoid)+import           System.Timeout               (timeout)  main :: IO () main = hspec spec@@ -142,4 +146,4 @@       ret `shouldBe` ["ab"]       released `shouldSatisfyEventually'` (== True) -      +