packages feed

seqid-streams 0.1.0 → 0.2.0

raw patch · 2 files changed

+13/−14 lines, 2 filesdep ~seqidPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: seqid

API changes (from Hackage documentation)

- System.IO.Streams.SequenceId: sequenceIdInputStream :: SequenceId -> (a -> SequenceId) -> (SequenceError -> IO ()) -> InputStream a -> IO (InputStream a)
+ System.IO.Streams.SequenceId: sequenceIdInputStream :: SequenceId -> (a -> SequenceId) -> (SequenceIdError -> IO ()) -> InputStream a -> IO (InputStream a)

Files

seqid-streams.cabal view
@@ -1,5 +1,5 @@ name:                seqid-streams-version:             0.1.0+version:             0.2.0 synopsis:            Sequence ID IO-Streams description:         Uniquely identify elements in a sequenced stream License:             BSD3@@ -15,7 +15,7 @@    build-depends: base       >= 4.7 && < 4.8                , io-streams >= 1.2 && < 1.3-               , seqid      >= 0.1 && < 0.2+               , seqid      >= 0.2 && < 0.3     hs-source-dirs:      src
src/System/IO/Streams/SequenceId.hs view
@@ -1,7 +1,7 @@ module System.IO.Streams.SequenceId where  import           Control.Applicative ((<$>))-import           Data.SequenceId     (SequenceError, SequenceId, checkSeqId,+import           Data.SequenceId     (SequenceId, SequenceIdError, checkSeqId,                                       nextSeqId) import           System.IO.Streams   (InputStream, OutputStream) import qualified System.IO.Streams   as Streams@@ -17,23 +17,22 @@ -- [1,2,3,4,5,6,7,8,9,10] -- -- ghci> 'System.IO.Streams.fromList' [5..10 :: 'Data.SequenceId.SequenceId'] >>= 'sequenceIdInputStream' 0 'id' ('fail' . 'show') >>= 'System.IO.Streams.toList'--- *** Exception: user error ('Data.SequenceId.SequenceIdDropped' ('Data.SequenceId.SequenceIds' {lastSeqId = 0, currSeqId = 5}))+-- *** Exception: user error ('Data.SequenceId.SequenceIdError' {errType = 'Data.SequenceId.SequenceIdDropped', lastSeqId = 0, currSeqId = 5}) ----- ghci> 'System.IO.Streams.fromList' [5..10 :: 'Data.SequenceId.SequenceId'] >>= 'sequenceIdInputStream' 1 'id' ('fail' . 'show') >>= 'System.IO.Streams.toList'--- *** Exception: user error ('Data.SequenceId.SequenceIdDuplicated' ('Data.SequenceId.SequenceIds' {lastSeqId = 1, currSeqId = 1}))+-- ghci> 'System.IO.Streams.fromList' [1..10 :: 'Data.SequenceId.SequenceId'] >>= 'sequenceIdInputStream' 5 'id' ('fail' . 'show') >>= 'System.IO.Streams.toList'+-- *** Exception: user error ('Data.SequenceId.SequenceIdError' {errType = 'Data.SequenceId.SequenceIdDuplicated', lastSeqId = 5, currSeqId = 1}) -- @-sequenceIdInputStream :: SequenceId                   -- ^ Initial sequence ID-                      -> (a -> SequenceId)            -- ^ Function applied to each element of the stream to get the sequence ID-                      -> (SequenceError -> IO ())     -- ^ Error handler-                      -> InputStream a                -- ^ 'System.IO.Streams.InputStream' to check the sequence of-                      -> IO (InputStream a)           -- ^ Pass-through of the given stream+sequenceIdInputStream :: SequenceId                 -- ^ Initial sequence ID+                      -> (a -> SequenceId)          -- ^ Function applied to each element of the stream to get the sequence ID+                      -> (SequenceIdError -> IO ()) -- ^ Error handler+                      -> InputStream a              -- ^ 'System.IO.Streams.InputStream' to check the sequence of+                      -> IO (InputStream a)         -- ^ Pass-through of the given stream sequenceIdInputStream initSeqId getSeqId seqFaultHandler inStream = fst <$> Streams.inputFoldM f initSeqId inStream   where     f lastSeqId x = do         let currSeqId = getSeqId x-            check = checkSeqId lastSeqId currSeqId-        maybe (return ()) seqFaultHandler check-        return currSeqId+        maybe (return ()) seqFaultHandler $ checkSeqId lastSeqId currSeqId+        return $ max currSeqId lastSeqId   ------------------------------------------------------------------------------