name:                sv-core
version:             0.5
license:             BSD3
license-file:        LICENCE
author:              George Wilson
maintainer:          george@qfpl.io
copyright:           Copyright (c) 2017-2019, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230.
category:            CSV, Text, Web
synopsis:
  Encode and decode separated values (CSV, PSV, ...)

description:
  <<http://i.imgur.com/uZnp9ke.png>>
  .
  sv-core is the decoding and encoding for the
  <https://hackage.haskell.org/package/sv sv> CSV library. This is split
  off into its own package so that one swap out sv's parser without incurring
  a dependency on the default parser
  (<https://hackage.haskell.org/package/hw-dsv hw-dsv>)
  .
  For an example, see <https://hackage.haskell.org/package/sv-cassava sv-cassava>

homepage:            https://github.com/qfpl/sv
bug-reports:         https://github.com/qfpl/sv/issues
build-type:          Simple
extra-source-files:  changelog.md
cabal-version:       >=1.10
tested-with:         GHC == 8.0.2
                     , GHC == 8.2.2
                     , GHC == 8.4.4
                     , GHC == 8.6.5

source-repository    head
  type:              git
  location:          git@github.com/qfpl/sv.git

library
  exposed-modules:     Data.Sv.Structure.Core
                       , Data.Sv.Structure.Headedness
                       , Data.Sv.Structure.Newline
                       , Data.Sv.Structure.Separator
                       , Data.Sv.Decode.Core
                       , Data.Sv.Decode.Error
                       , Data.Sv.Decode.Type
                       , Data.Sv.Encode.Core
                       , Data.Sv.Encode.Options
                       , Data.Sv.Encode.Type
  other-modules:       Data.Sv.Alien.Containers
  -- other-extensions:    
  build-depends:       attoparsec >= 0.12.1.4 && < 0.14
                       , base >=4.9 && < 4.13
                       , bifunctors >= 5.1 && < 5.6
                       , bytestring >= 0.9.1.10 && < 0.11
                       , containers >= 0.4 && < 0.7
                       , contravariant >= 1.2 && < 1.6
                       , deepseq >= 1.1 && < 1.5
                       , double-conversion >= 2 && < 2.1
                       , lens >= 4 && < 4.18
                       , mtl >= 2.0.1 && < 2.3
                       , parsec >= 3.1 && < 3.2
                       , profunctors >= 5.2.1 && < 5.5
                       , readable >= 0.3 && < 0.4
                       , semigroupoids >= 5 && < 5.4
                       , semigroups >= 0.18 && < 0.20
                       , text >= 1.0 && < 1.3
                       , transformers >= 0.2 && < 0.6
                       , trifecta >= 1.5 && < 2.1
                       , utf8-string >= 1 && < 1.1
                       , validation >= 1 && < 1.2
                       , vector >= 0.10 && < 0.13
                       , void >= 0.6 && < 0.8
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:
                       -Wall -O2

test-suite             tasty
  type:
                       exitcode-stdio-1.0
  main-is:
                       tasty.hs
  other-modules:
                       Data.Sv.Core.Laws
  default-language:
                       Haskell2010
  build-depends:
                       base >=4.9 && < 4.13
                       , bytestring >= 0.9.1.10 && < 0.11
                       , semigroupoids >= 5 && < 5.4
                       , sv-core
                       , profunctors >= 5 && < 5.5
                       , semigroups >= 0.18 && < 0.20
                       , tasty >= 0.11 && < 1.3
                       , tasty-quickcheck >= 0.9 && < 0.11
                       , text >= 1.0 && < 1.3
                       , validation >= 1 && < 1.2
                       , vector >= 0.10 && < 0.13
                       , QuickCheck >= 2.10 && < 2.14
  ghc-options:
                       -Wall
  hs-source-dirs:
                       test