cabal-version:      2.0
name:               base64
version:            0.4.2
synopsis:           Fast RFC 4648-compliant Base64 encoding
description:
  RFC 4648-compliant padded and unpadded base64 and base64url encoding and decoding. This library provides
  performant encoding and decoding primitives, as well as support for textual values.

homepage:           https://github.com/emilypi/base64
bug-reports:        https://github.com/emilypi/base64/issues
license:            BSD3
license-file:       LICENSE
author:             Emily Pillmore
maintainer:         emilypi@cohomolo.gy
copyright:          (c) 2019-2020 Emily Pillmore
category:           Data
build-type:         Simple
extra-source-files:
  CHANGELOG.md
  README.md

tested-with:
  GHC ==8.2.2
   || ==8.4.3
   || ==8.4.4
   || ==8.6.3
   || ==8.6.5
   || ==8.8.1
   || ==8.10.1

source-repository head
  type:     git
  location: https://github.com/emilypi/base64.git

library
  exposed-modules:
    Data.ByteString.Base64
    Data.ByteString.Base64.URL
    Data.ByteString.Lazy.Base64
    Data.ByteString.Lazy.Base64.URL
    Data.ByteString.Short.Base64
    Data.ByteString.Short.Base64.URL
    Data.Text.Encoding.Base64
    Data.Text.Encoding.Base64.Error
    Data.Text.Encoding.Base64.URL
    Data.Text.Lazy.Encoding.Base64
    Data.Text.Lazy.Encoding.Base64.URL
    Data.Text.Short.Encoding.Base64
    Data.Text.Short.Encoding.Base64.URL

  other-modules:
    Data.ByteString.Base64.Internal
    Data.ByteString.Base64.Internal.Head
    Data.ByteString.Base64.Internal.Tables
    Data.ByteString.Base64.Internal.Tail
    Data.ByteString.Base64.Internal.Utils
    Data.ByteString.Base64.Internal.W16.Loop
    Data.ByteString.Base64.Internal.W32.Loop
    Data.ByteString.Base64.Internal.W64.Loop

  build-depends:
      base           >=4.10     && <5
    , bytestring     ^>=0.10
    , ghc-byteorder  ^>=4.11.0.0
    , text           ^>=1.2
    , text-short     ^>=0.1

  hs-source-dirs:   src
  default-language: Haskell2010
  ghc-options:      -Wall

test-suite tasty
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  other-modules:    Internal
  main-is:          Main.hs
  build-depends:
      base                  >=4.10 && <5
    , base64
    , base64-bytestring
    , bytestring
    , QuickCheck
    , quickcheck-instances
    , random-bytestring
    , tasty
    , tasty-hunit
    , tasty-quickcheck
    , text
    , text-short

  ghc-options:      -Wall -threaded -with-rtsopts=-N

benchmark bench
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarks
  main-is:          Base64Bench.hs
  build-depends:
      base               >=4.10 && <5
    , base64
    , base64-bytestring
    , bytestring
    , criterion
    , deepseq
    , memory
    , random-bytestring
    , text

  ghc-options:      -Wall -rtsopts