csv-conduit 0.6.8.1 → 0.7.0.0
raw patch · 5 files changed
+14/−10 lines, 5 filesdep +semigroupsPVP ok
version bump matches the API change (PVP)
Dependencies added: semigroups
API changes (from Hackage documentation)
- Data.CSV.Conduit.Conversion: instance GHC.Base.Monoid (Data.CSV.Conduit.Conversion.Parser a)
+ Data.CSV.Conduit.Conversion: instance Data.Semigroup.Semigroup (Data.CSV.Conduit.Conversion.Parser a)
Files
- changelog.md +4/−0
- csv-conduit.cabal +2/−1
- src/Data/CSV/Conduit/Conversion.hs +4/−6
- src/Data/CSV/Conduit/Monoid.hs +1/−0
- test/Test.hs +3/−3
changelog.md view
@@ -1,3 +1,7 @@+0.7.0.0+* BREAKING: Switch from partial Monoid instance on Parser to total Semigroup instance.+* Compatibility with GHC 8.4.x/base-4.11.1.0+ 0.6.8.1 * Fix documentation mistake in FromNamedRecord/ToNamedRecord examples.
csv-conduit.cabal view
@@ -1,5 +1,5 @@ Name: csv-conduit-Version: 0.6.8.1+Version: 0.7.0.0 Synopsis: A flexible, fast, conduit-based CSV parser library for Haskell. Homepage: http://github.com/ozataman/csv-conduit License: BSD3@@ -98,6 +98,7 @@ , mmorph , primitive , resourcet >= 1.1.2.1+ , semigroups if impl(ghc >= 7.2.1) cpp-options: -DGENERICS
src/Data/CSV/Conduit/Conversion.hs view
@@ -64,7 +64,7 @@ import Data.Int (Int8, Int16, Int32, Int64) import qualified Data.Map as M-import Data.Monoid as Monoid+import Data.Semigroup as Semigroup import qualified Data.Text as T import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as LT@@ -778,11 +778,9 @@ in unParser a kf' ks {-# INLINE mplus #-} -instance Monoid.Monoid (Parser a) where- mempty = fail "mempty"- {-# INLINE mempty #-}- mappend = mplus- {-# INLINE mappend #-}+instance Semigroup.Semigroup (Parser a) where+ (<>) = mplus+ {-# INLINE (<>) #-} apP :: Parser (a -> b) -> Parser a -> Parser b apP d e = do
src/Data/CSV/Conduit/Monoid.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE CPP #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-} module Data.CSV.Conduit.Monoid ( (<>)
test/Test.hs view
@@ -7,7 +7,7 @@ import Control.Exception import qualified Data.ByteString.Char8 as B import Data.Map ((!))-import Data.Monoid+import Data.Monoid as M import Data.Text import qualified Data.Vector as V import System.Directory@@ -48,7 +48,7 @@ let efoos = decodeCSV defCSVSettings ("Foo\nbad" :: B.ByteString) case efoos :: Either SomeException (V.Vector (Named Foo)) of Left e -> assertFailure (show e)- Right foos -> mempty @=? foos+ Right foos -> M.mempty @=? foos ] @@ -60,7 +60,7 @@ s <- nr .: "Foo" case s of "foo" -> pure Foo- _ -> fail ("Expected \"foo\" but got " <> B.unpack s)+ _ -> fail ("Expected \"foo\" but got " <> B.unpack s) instance ToNamedRecord Foo where