name:                text-short
version:             0.1
synopsis:            Memory-efficient representation of Unicode text strings
license:             BSD3
license-file:        LICENSE
author:              Herbert Valerio Riedel
maintainer:          hvr@gnu.org
bug-reports:         https://github.com/hvr/text-short/issues
category:            Data
build-type:          Simple
cabal-version:       >=1.10
description:         This package provides the 'ShortText' type which is suitable for keeping many short strings in memory. This is similiar to how 'ShortByteString' relates to 'ByteString'.
                     .
                     The main difference between 'Text' and 'ShortText' is that 'ShortText' uses UTF-8 instead of UTF-16 internally and also doesn't support slicing (thereby saving 2 words). Consequently, the memory footprint of a (boxed) 'ShortText' value is 4 words (2 words when unboxed) plus the length of the UTF-8 encoded payload.

extra-source-files:  ChangeLog.md

Source-Repository head
    Type:              git
    Location:          https://github.com/hvr/text-short.git

library
  default-language:    Haskell2010
  exposed-modules:     Data.Text.Short
  build-depends:       base        >= 4.7    && < 4.11
                     , bytestring  >= 0.10.4 && < 0.11
                     , hashable    >= 1.2.6  && < 1.3
                     , deepseq     >= 1.3    && < 1.5
                     , text        >= 1.0    && < 1.3
                     , binary      >= 0.7.1  && < 0.9

  if !impl(ghc >= 8.0)
     build-depends: semigroups >= 0.18.2 && < 0.19

  hs-source-dirs:      src

  default-language:    Haskell2010
  other-extensions:    CPP
                     , GeneralizedNewtypeDeriving
                     , MagicHash
                     , UnliftedFFITypes
                     , Trustworthy

  c-sources: cbits/cbits.c
  ghc-options: -Wall

test-suite tests
  default-language:    Haskell2010
  type:                exitcode-stdio-1.0
  hs-source-dirs:      src-test
  main-is:             Tests.hs

  build-depends: base
               , binary
               , text
               , text-short
                 -- deps which don't inherit constraints from library stanza:
               , tasty                >= 0.11.2 && < 0.12
               , tasty-quickcheck     >= 0.8.4  && < 0.9
               , tasty-hunit          >= 0.9.2  && < 0.10
               , quickcheck-instances >= 0.3.14 && < 0.4