packages feed

modern-uri-0.3.5.0: modern-uri.cabal

cabal-version:   2.4
name:            modern-uri
version:         0.3.5.0
license:         BSD-3-Clause
license-file:    LICENSE.md
maintainer:      Mark Karpov <markkarpov92@gmail.com>
author:          Mark Karpov <markkarpov92@gmail.com>
tested-with:     ghc ==9.0.2 ghc ==9.2.4 ghc ==9.4.1
homepage:        https://github.com/mrkkrp/modern-uri
bug-reports:     https://github.com/mrkkrp/modern-uri/issues
synopsis:        Modern library for working with URIs
description:     Modern library for working with URIs.
category:        Text
build-type:      Simple
extra-doc-files:
    CHANGELOG.md
    README.md

source-repository head
    type:     git
    location: https://github.com/mrkkrp/modern-uri.git

flag dev
    description: Turn on development settings.
    default:     False
    manual:      True

library
    exposed-modules:
        Text.URI
        Text.URI.Lens
        Text.URI.QQ

    other-modules:
        Text.URI.Parser.ByteString
        Text.URI.Parser.Text
        Text.URI.Parser.Text.Utils
        Text.URI.Render
        Text.URI.Types

    default-language: Haskell2010
    build-depends:
        QuickCheck >=2.4 && <3.0,
        base >=4.15 && <5.0,
        bytestring >=0.2 && <0.12,
        containers >=0.5 && <0.7,
        contravariant >=1.3 && <2.0,
        deepseq >=1.3 && <1.5,
        exceptions >=0.6 && <0.11,
        hashable >=1.3 && <2.0,
        megaparsec >=7.0 && <10.0,
        mtl >=2.0 && <3.0,
        profunctors >=5.2.1 && <6.0,
        reflection >=2.0 && <3.0,
        tagged >=0.8 && <0.9,
        template-haskell >=2.10 && <2.20,
        text >=0.2 && <2.1

    if flag(dev)
        ghc-options: -Wall -Werror

    else
        ghc-options: -O2 -Wall

    if flag(dev)
        ghc-options:
            -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns
            -Wnoncanonical-monad-instances

test-suite tests
    type:               exitcode-stdio-1.0
    main-is:            Spec.hs
    build-tool-depends: hspec-discover:hspec-discover >=2.0 && <3.0
    hs-source-dirs:     tests
    other-modules:
        Text.QQSpec
        Text.URISpec

    default-language:   Haskell2010
    build-depends:
        QuickCheck >=2.4 && <3.0,
        base >=4.15 && <5.0,
        bytestring >=0.2 && <0.12,
        hspec >=2.0 && <3.0,
        hspec-megaparsec >=2.0 && <3.0,
        megaparsec >=8.0 && <10.0,
        modern-uri,
        text >=0.2 && <2.1

    if flag(dev)
        ghc-options: -Wall -Werror

    else
        ghc-options: -O2 -Wall

benchmark bench-speed
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    hs-source-dirs:   bench/speed
    default-language: Haskell2010
    build-depends:
        base >=4.15 && <5.0,
        bytestring >=0.2 && <0.12,
        criterion >=0.6.2.1 && <1.7,
        megaparsec >=8.0 && <10.0,
        modern-uri,
        text >=0.2 && <2.1

    if flag(dev)
        ghc-options: -O2 -Wall -Werror

    else
        ghc-options: -O2 -Wall

benchmark bench-memory
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    hs-source-dirs:   bench/memory
    default-language: Haskell2010
    build-depends:
        base >=4.15 && <5.0,
        bytestring >=0.2 && <0.12,
        deepseq >=1.3 && <1.5,
        megaparsec >=8.0 && <10.0,
        modern-uri,
        text >=0.2 && <2.1,
        weigh >=0.0.4

    if flag(dev)
        ghc-options: -O2 -Wall -Werror

    else
        ghc-options: -O2 -Wall