packages feed

cassava 0.4.3.1 → 0.4.4.0

raw patch · 2 files changed

+192/−2 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Data/Csv/Conversion.hs view
@@ -49,6 +49,9 @@ import qualified Data.ByteString as B import qualified Data.ByteString.Char8 as B8 import qualified Data.ByteString.Lazy as L+#if MIN_VERSION_bytestring(0,10,4)+import qualified Data.ByteString.Short as SBS+#endif import Data.Hashable (Hashable) import qualified Data.HashMap.Lazy as HM import Data.Int (Int8, Int16, Int32, Int64)@@ -310,6 +313,182 @@         toField a, toField b, toField c, toField d, toField e, toField f,         toField g, toField h, toField i] +instance (FromField a, FromField b, FromField c, FromField d, FromField e,+          FromField f, FromField g, FromField h, FromField i, FromField j) =>+         FromRecord (a, b, c, d, e, f, g, h, i, j) where+    parseRecord v+        | n == 10    = (,,,,,,,,,) <$> unsafeIndex v 0+                                   <*> unsafeIndex v 1+                                   <*> unsafeIndex v 2+                                   <*> unsafeIndex v 3+                                   <*> unsafeIndex v 4+                                   <*> unsafeIndex v 5+                                   <*> unsafeIndex v 6+                                   <*> unsafeIndex v 7+                                   <*> unsafeIndex v 8+                                   <*> unsafeIndex v 9+        | otherwise = lengthMismatch 10 v+          where+            n = V.length v++instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,+          ToField g, ToField h, ToField i, ToField j) =>+         ToRecord (a, b, c, d, e, f, g, h, i, j) where+    toRecord (a, b, c, d, e, f, g, h, i, j) = V.fromList [+        toField a, toField b, toField c, toField d, toField e, toField f,+        toField g, toField h, toField i, toField j]++instance (FromField a, FromField b, FromField c, FromField d, FromField e,+          FromField f, FromField g, FromField h, FromField i, FromField j,+          FromField k) =>+         FromRecord (a, b, c, d, e, f, g, h, i, j, k) where+    parseRecord v+        | n == 11    = (,,,,,,,,,,) <$> unsafeIndex v 0+                                    <*> unsafeIndex v 1+                                    <*> unsafeIndex v 2+                                    <*> unsafeIndex v 3+                                    <*> unsafeIndex v 4+                                    <*> unsafeIndex v 5+                                    <*> unsafeIndex v 6+                                    <*> unsafeIndex v 7+                                    <*> unsafeIndex v 8+                                    <*> unsafeIndex v 9+                                    <*> unsafeIndex v 10+        | otherwise = lengthMismatch 11 v+          where+            n = V.length v++instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,+          ToField g, ToField h, ToField i, ToField j, ToField k) =>+         ToRecord (a, b, c, d, e, f, g, h, i, j, k) where+    toRecord (a, b, c, d, e, f, g, h, i, j, k) = V.fromList [+        toField a, toField b, toField c, toField d, toField e, toField f,+        toField g, toField h, toField i, toField j, toField k]++instance (FromField a, FromField b, FromField c, FromField d, FromField e,+          FromField f, FromField g, FromField h, FromField i, FromField j,+          FromField k, FromField l) =>+         FromRecord (a, b, c, d, e, f, g, h, i, j, k, l) where+    parseRecord v+        | n == 12    = (,,,,,,,,,,,) <$> unsafeIndex v 0+                                     <*> unsafeIndex v 1+                                     <*> unsafeIndex v 2+                                     <*> unsafeIndex v 3+                                     <*> unsafeIndex v 4+                                     <*> unsafeIndex v 5+                                     <*> unsafeIndex v 6+                                     <*> unsafeIndex v 7+                                     <*> unsafeIndex v 8+                                     <*> unsafeIndex v 9+                                     <*> unsafeIndex v 10+                                     <*> unsafeIndex v 11+        | otherwise = lengthMismatch 12 v+          where+            n = V.length v++instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,+          ToField g, ToField h, ToField i, ToField j, ToField k, ToField l) =>+         ToRecord (a, b, c, d, e, f, g, h, i, j, k, l) where+    toRecord (a, b, c, d, e, f, g, h, i, j, k, l) = V.fromList [+        toField a, toField b, toField c, toField d, toField e, toField f,+        toField g, toField h, toField i, toField j, toField k, toField l]++instance (FromField a, FromField b, FromField c, FromField d, FromField e,+          FromField f, FromField g, FromField h, FromField i, FromField j,+          FromField k, FromField l, FromField m) =>+         FromRecord (a, b, c, d, e, f, g, h, i, j, k, l, m) where+    parseRecord v+        | n == 13    = (,,,,,,,,,,,,) <$> unsafeIndex v 0+                                      <*> unsafeIndex v 1+                                      <*> unsafeIndex v 2+                                      <*> unsafeIndex v 3+                                      <*> unsafeIndex v 4+                                      <*> unsafeIndex v 5+                                      <*> unsafeIndex v 6+                                      <*> unsafeIndex v 7+                                      <*> unsafeIndex v 8+                                      <*> unsafeIndex v 9+                                      <*> unsafeIndex v 10+                                      <*> unsafeIndex v 11+                                      <*> unsafeIndex v 12+        | otherwise = lengthMismatch 13 v+          where+            n = V.length v++instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,+          ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,+          ToField m) =>+         ToRecord (a, b, c, d, e, f, g, h, i, j, k, l, m) where+    toRecord (a, b, c, d, e, f, g, h, i, j, k, l, m) = V.fromList [+        toField a, toField b, toField c, toField d, toField e, toField f,+        toField g, toField h, toField i, toField j, toField k, toField l,+        toField m]++instance (FromField a, FromField b, FromField c, FromField d, FromField e,+          FromField f, FromField g, FromField h, FromField i, FromField j,+          FromField k, FromField l, FromField m, FromField n) =>+         FromRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n) where+    parseRecord v+        | n == 14    = (,,,,,,,,,,,,,) <$> unsafeIndex v 0+                                       <*> unsafeIndex v 1+                                       <*> unsafeIndex v 2+                                       <*> unsafeIndex v 3+                                       <*> unsafeIndex v 4+                                       <*> unsafeIndex v 5+                                       <*> unsafeIndex v 6+                                       <*> unsafeIndex v 7+                                       <*> unsafeIndex v 8+                                       <*> unsafeIndex v 9+                                       <*> unsafeIndex v 10+                                       <*> unsafeIndex v 11+                                       <*> unsafeIndex v 12+                                       <*> unsafeIndex v 13+        | otherwise = lengthMismatch 14 v+          where+            n = V.length v++instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,+          ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,+          ToField m, ToField n) =>+         ToRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n) where+    toRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = V.fromList [+        toField a, toField b, toField c, toField d, toField e, toField f,+        toField g, toField h, toField i, toField j, toField k, toField l,+        toField m, toField n]++instance (FromField a, FromField b, FromField c, FromField d, FromField e,+          FromField f, FromField g, FromField h, FromField i, FromField j,+          FromField k, FromField l, FromField m, FromField n, FromField o) =>+         FromRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) where+    parseRecord v+        | n == 15    = (,,,,,,,,,,,,,,) <$> unsafeIndex v 0+                                        <*> unsafeIndex v 1+                                        <*> unsafeIndex v 2+                                        <*> unsafeIndex v 3+                                        <*> unsafeIndex v 4+                                        <*> unsafeIndex v 5+                                        <*> unsafeIndex v 6+                                        <*> unsafeIndex v 7+                                        <*> unsafeIndex v 8+                                        <*> unsafeIndex v 9+                                        <*> unsafeIndex v 10+                                        <*> unsafeIndex v 11+                                        <*> unsafeIndex v 12+                                        <*> unsafeIndex v 13+                                        <*> unsafeIndex v 14+        | otherwise = lengthMismatch 15 v+          where+            n = V.length v++instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,+          ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,+          ToField m, ToField n, ToField o) =>+         ToRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) where+    toRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = V.fromList [+        toField a, toField b, toField c, toField d, toField e, toField f,+        toField g, toField h, toField i, toField j, toField k, toField l,+        toField m, toField n, toField o]+ lengthMismatch :: Int -> Record -> Parser a lengthMismatch expected v =     fail $ "cannot unpack array of length " ++@@ -677,6 +856,16 @@ instance ToField L.ByteString where     toField = toStrict     {-# INLINE toField #-}++#if MIN_VERSION_bytestring(0,10,4)+instance FromField SBS.ShortByteString where+    parseField = pure . SBS.toShort+    {-# INLINE parseField #-}++instance ToField SBS.ShortByteString where+    toField = SBS.fromShort+    {-# INLINE toField #-}+#endif  -- | Assumes UTF-8 encoding. Fails on invalid byte sequences. instance FromField T.Text where
cassava.cabal view
@@ -1,5 +1,5 @@ Name:                cassava-Version:             0.4.3.1+Version:             0.4.4.0 Synopsis:            A CSV parsing and encoding library Description:   A CSV parsing and encoding library optimized for ease of use and high@@ -17,6 +17,7 @@ Build-type:          Simple Cabal-version:       >=1.8 Extra-source-files:  examples/*.hs+Tested-with:         GHC == 7.10.2, GHC == 7.8.4, GHC == 7.6.3  Library   Exposed-modules:@@ -92,7 +93,7 @@    Build-depends:     array < 0.6,-    attoparsec >= 0.10.2 && < 0.13,+    attoparsec >= 0.10.2 && < 0.14,     base >= 4.5 && < 5,     blaze-builder < 0.5,     bytestring < 0.11,