packages feed

data-stringmap-1.0.0: data-stringmap.cabal

name:         data-stringmap
version:      1.0.0
license:      MIT
license-file: LICENSE
author:       Uwe Schmidt, Sebastian Philipp
maintainer:   Uwe Schmidt (uwe@fh-wedel.de), Sebastian Philipp (sebastian@spawnhost.de)
bug-reports:  https://github.com/sebastian-philipp/StringMap/issues
synopsis:     An efficient implementation of maps from strings to arbitrary values
category:     Data Structures
description:  An efficient implementation of maps from strings to arbitrary values.
              Values can associated with an arbitrary byte key.
              Searching for keys is very fast, but
              the prefix tree probably consumes more memory than
              "Data.Map". The main differences are the special
              'prefixFind' functions, which can be used to perform prefix queries.

build-type:     Simple
cabal-version:  >= 1.10

extra-source-files:
        tests/*.hs
        benchmarks/*.hs

flag with-sizeable
  default:      False
  manual:       True

-- disable with cabal test -f-test-properties
flag test-properties
  default:      True
  manual:       True

-- enable with cabal test -ftest-strict
flag test-strict
  default:      False
  manual:       True

source-repository head
  type:         git
  location:     https://github.com/sebastian-philipp/StringMap.git

library
  build-depends:
                base       >= 4.5   && < 5
              , deepseq    >= 1.2   && < 2
              , binary     >= 0.5   && < 1
              , containers >= 0.4   && < 1

  ghc-options:  -O2 -Wall -fwarn-tabs -fno-warn-unused-binds

  exposed-modules:
                Data.StringMap
                Data.StringMap.Lazy
                Data.StringMap.Strict
                Data.StringMap.StringSet
                Data.StringMap.Types
                Data.StringMap.Base

  other-modules:
                Data.StringMap.FuzzySearch

  default-language:
                Haskell2010

  default-extensions:
                CPP

  other-extensions:
                DeriveDataTypeable
              , BangPatterns

  if flag(test-strict)
    build-depends:
                bytestring == 0.10.0.2

  if flag(with-sizeable)
    build-depends:
                data-size  >= 0.1.3 && < 1

    cpp-options:
                -Dsizeable=1

test-suite properties
  type:         exitcode-stdio-1.0
  main-is:      StringMapProperties.hs

  if !flag(test-properties)
    buildable: False
  else
    build-depends:
                data-stringmap
              , base
              , containers
              , deepseq
              , ghc-heap-view              >= 0.5
              , HUnit                      >= 1.2
              , QuickCheck                 >= 2.4
              , test-framework             >= 0.6
              , test-framework-quickcheck2 >= 0.2
              , test-framework-hunit       >= 0.2

    if flag(with-sizeable)
      build-depends:
                data-size

  default-language:
                Haskell2010

  ghc-options:  -Wall -fwarn-tabs

  hs-source-dirs:
                tests

test-suite strict
  type:         exitcode-stdio-1.0
  main-is:      StringMapStrict.hs

  if !flag(test-strict)
    buildable: False
  else
    build-depends:
                data-stringmap
              , base
              , bytestring                 == 0.10.0.2
              , containers
              , deepseq
              , ghc-heap-view              >= 0.5
              , HUnit                      >= 1.2
              , QuickCheck                 >= 2.4
              , test-framework             >= 0.6
              , test-framework-quickcheck2 >= 0.2
              , test-framework-hunit       >= 0.2

    if flag(with-sizeable)
      build-depends:
                data-size

  default-language:
                Haskell2010

  ghc-options:  -Wall -fwarn-tabs

  hs-source-dirs:
                tests