packages feed

pact-time-0.3.0.0: pact-time.cabal

cabal-version: 3.0
name: pact-time
version: 0.3.0.0
synopsis: Time Library for Pact
Description:
    A minimal time library for usage with the [Pact Smart Contract
    Language](https://github.com/kadena-io/pact/).
    .
    The focus of this library is on minimality, performance, and binary level
    stability. Time is represented as 64-bit integral value that counts nominal
    micro-seconds since the modified Julian date epoch (MJD). The implementation
    ignores leap seconds.
    .
    While the library can parse date-time values with time zones, internally all
    date-times are represented as UTC and formatting only supports UTC. Only the
    default English language locale is supported.
    .
    Details about supported formats can be found in the [Pact Language
    Reference](https://pact-language.readthedocs.io/en/stable/pact-reference.html#time-formats).

homepage: https://github.com/kadena-io/pact-time
bug-reports: https://github.com/kadena-io/pact-time/issues
license: BSD-3-Clause
license-file: LICENSE
author: Lars Kuhtz
maintainer: lakuhtz@gmail.com
copyright: Copyright (c) 2021 Kadena LLC.
category: Data, System
tested-with:
    GHC==9.10
    GHC==9.8
    GHC==9.6
    GHC==9.4

extra-source-files:

extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
    type: git
    location: https://github.com/kadena-io/pact-time.git

flag with-time
    description: Use the time package for parsing and formatting
    manual: True
    default: False

library numeric
    visibility: public
    hs-source-dirs: numeric/src
    default-language: Haskell2010
    ghc-options:
        -Wall
    exposed-modules:
        Numeric.Additive
        Numeric.AffineSpace
    build-depends:
        -- external
        , base >=4.11 && <5
        , data-dword >=0.3
library
    hs-source-dirs: src
    default-language: Haskell2010
    ghc-options:
        -Wall
    exposed-modules:
        Pact.Time
        Pact.Time.Internal
        Pact.Time.Format
        Pact.Time.System
    build-depends:
        -- internal
        , pact-time:numeric
        -- external
        , Decimal >=0.4
        , aeson >=0.11
        , attoparsec >=0.13
        , base >=4.11 && <5
        , bytestring >=0.10
        , cereal >=0.5
        , deepseq >=1.4
        , microlens >=0.4
        , text >=1.2
        , vector >=0.12

    if flag(with-time)
        cpp-options: -DWITH_TIME=1
        other-modules: Pact.Time.Format.External
        build-depends: time >= 1.8
    else
        cpp-options: -DWITH_TIME=0
        other-modules:
            Pact.Time.Format.Internal
            Pact.Time.Format.Locale
        build-depends:
            , clock >= 0.7.2
            , mtl >=2.2

test-suite tests
    type: exitcode-stdio-1.0
    hs-source-dirs: test
    default-language: Haskell2010
    ghc-options:
        -Wall
        -rtsopts
        -threaded
        -with-rtsopts=-N
    main-is: Main.hs
    other-modules:
        Test.Pact.Time.Format
    build-depends:
        -- internal
        , pact-time
        -- external
        , base >=4.11 && <5
        , tasty >=1.4
        , tasty-hunit >=0.10