cabal-version: 3.0
name:          text-builder-dev
version:       0.3.4.2
category:      Text, Builders
synopsis:      Edge of developments for "text-builder"
description:
  This is a development version of \"text-builder\".
  All experimentation and feature development happens here.
  The API can change drastically.
  For a more stable API use \"text-builder\",
  which is now just a wrapper over this package.

homepage:      https://github.com/nikita-volkov/text-builder-dev
bug-reports:   https://github.com/nikita-volkov/text-builder-dev/issues
author:        Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>
copyright:     (c) 2022, Nikita Volkov
license:       MIT
license-file:  LICENSE

source-repository head
  type:     git
  location: git://github.com/nikita-volkov/text-builder-dev.git

common base-settings
  default-extensions:
    NoImplicitPrelude
    NoMonomorphismRestriction
    BangPatterns
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    InstanceSigs
    LambdaCase
    LiberalTypeSynonyms
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    OverloadedStrings
    ParallelListComp
    PatternGuards
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    ViewPatterns

  default-language:   Haskell2010

library
  import:          base-settings
  hs-source-dirs:  library
  exposed-modules: TextBuilderDev
  other-modules:
    TextBuilderDev.Allocator
    TextBuilderDev.Prelude
    TextBuilderDev.Unicode
    TextBuilderDev.Utf16View
    TextBuilderDev.Utf8View

  build-depends:
    , base >=4.11 && <5
    , bytestring >=0.10 && <0.13
    , deferred-folds >=0.9.10.1 && <0.10
    , isomorphism-class >=0.1.0.1 && <0.2
    , QuickCheck >=2.14 && <3
    , quickcheck-instances >=0.3.28 && <0.4
    , split >=0.2.3.4 && <0.3
    , text >=1.0 && <3
    , time >=1.12 && <2
    , transformers >=0.5 && <0.7

test-suite test
  import:         base-settings
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  other-modules:  TextBuilderDev.TastyExtras
  build-depends:
    , base-compat ^>=0.13.1
    , quickcheck-classes >=0.6.5 && <0.7
    , quickcheck-instances >=0.3.28 && <0.4
    , rerebase <2
    , tasty >=1.2.3 && <2
    , tasty-hunit >=0.10.0.2 && <0.11
    , tasty-quickcheck >=0.10.1 && <0.11
    , text-builder-dev

benchmark benchmark-text
  import:         base-settings
  type:           exitcode-stdio-1.0
  ghc-options:    -O2
  hs-source-dirs: benchmark-text
  main-is:        Main.hs
  build-depends:
    , criterion >=1.5.13.0 && <2
    , rerebase >=1 && <2
    , text-builder-dev

benchmark benchmark-char
  import:         base-settings
  type:           exitcode-stdio-1.0
  ghc-options:    -O2
  hs-source-dirs: benchmark-char
  main-is:        Main.hs
  build-depends:
    , criterion >=1.5.13.0 && <2
    , rerebase >=1 && <2
    , text-builder-dev