packages feed

basesystems-1.1.0.0: basesystems.cabal

cabal-version: 3.0
version:       1.1.0.0
name:          basesystems
build-type:    Simple
author:        Zoey McBride
maintainer:    zoeymcbride@mailbox.org
license:       BSD-3-Clause
license-file:  LICENSE.txt
category:      Numeric, Data, Serialization
synopsis:      Implements encoders/decoders for basesystems
description:
    This package implements encoder and decoder methods for numeric basesystems
    and provides definitions for common basesystems like base16, base58btc,
    base64, and more.
extra-doc-files:
    README.md
    CHANGELOG.md
tested-with:
    GHC == 9.6.7

source-repository head {
    type:     git
    location: https://git.sr.ht/~z0/basesystems
}

-- | Sets flag for CI build toggle
flag CI {
    Description: CI Build options
    Default: False
    Manual: True
}

common HaskellConfig {
    hs-source-dirs: basesystems
    default-extensions: StrictData
    default-language: GHC2021
}

common Depends {
    build-depends:
        base >= 4.18 && < 5,
        array ^>= 0.5,
        bytestring >= 0.12 && < 0.13,
        containers >= 0.7 && < 8,
        text >=2.1 && < 2.2
}

common BuildUser {
    import: Depends
    ghc-options: -Wall -Wextra -Wno-unused-top-binds
}

common BuildCI {
    import: Depends
    ghc-options: -Wall -Wextra -Werror -Wno-unused-top-binds
}

library {
    import: HaskellConfig
    if flag(CI) { import: BuildCI }
    else { import: BuildUser }
    exposed-modules:
        -- * BaseSystems for ShortByteStrings
        Data.BaseSystem,
        -- * BaseSystems for LazyByteStrings
        Data.BaseSystem.Lazy,
        -- * BaseSystems for Strict ByteStrings
        Data.BaseSystem.Strict,
        -- * Defines Alphabet type + instances
        Data.BaseSystem.Alphabet,
        -- * Data instances for working with strings of digits
        Data.BaseSystem.DigitSystem,
        -- * Interface for decoding strings of numbers into binary data.
        Data.BaseSystem.DigitTranscoder,
        -- * Interface for transcoding bitstreams
        Data.BaseSystem.BinaryTranscoder,
        -- * Provides utility functions
        Data.BaseSystem.Internal,
}