packages feed

timer-wheel-0.4.0: timer-wheel.cabal

cabal-version: 2.0

name: timer-wheel
version: 0.4.0
category: Data
description:
  This library provides a timer wheel data structure for
  .
  * (Almost) /O(1)/ registering @IO@ actions to fire after a given amount of time
  * /O(1)/ canceling registered actions
  .
  It is similar to @TimerManager@ from @GHC.Event@, but supports recurring
  timers, can scale to handle many more registered timers.
  .
synopsis: A timer wheel
author: Mitchell Rosen
maintainer: Mitchell Rosen <mitchellwrosen@gmail.com>
homepage: https://github.com/mitchellwrosen/timer-wheel
bug-reports: https://github.com/mitchellwrosen/timer-wheel/issues
copyright: (c) 2018-2020, Mitchell Rosen
license: BSD3
license-file: LICENSE
build-type: Simple
tested-with: GHC ==8.10.7, GHC ==9.0.2, GHC ==9.2.1

extra-source-files:
  CHANGELOG.md
  README.md
  cabal.project

source-repository head
  type: git
  location: git://github.com/mitchellwrosen/timer-wheel.git

library
  build-depends:
    array ^>= 0.5.2.0,
    atomic-primops ^>= 0.8,
    base ^>= 4.12 || ^>= 4.13 || ^>= 4.14 || ^>= 4.15 || ^>= 4.16 || ^>= 4.17,
    ki ^>= 1.0.0,
    psqueues ^>= 0.2.7

  default-extensions:
    BlockArguments
    DeriveAnyClass
    DeriveGeneric
    DerivingStrategies
    GeneralizedNewtypeDeriving
    LambdaCase
    NamedFieldPuns
    RecursiveDo
    ScopedTypeVariables
    TupleSections
    TypeApplications
    ViewPatterns

  default-language:
    Haskell2010

  exposed-modules:
    TimerWheel

  ghc-options:
    -Weverything
    -Wno-all-missed-specialisations
    -Wno-implicit-prelude
    -Wno-missing-import-lists
    -Wno-unsafe
  if impl(ghc >= 8.10)
    ghc-options:
      -Wno-missing-safe-haskell-mode
      -Wno-prepositive-qualified-module
  if impl(ghc >= 9.2)
    ghc-options:
      -Wno-missing-kind-signatures

  hs-source-dirs:
    src

  other-modules:
    TimerWheel.Internal.Config
    TimerWheel.Internal.Entries
    TimerWheel.Internal.Micros
    TimerWheel.Internal.Supply
    TimerWheel.Internal.Timestamp
    TimerWheel.Internal.Wheel

test-suite tests
  build-depends:
    base,
    timer-wheel

  default-language:
    Haskell2010

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

  hs-source-dirs:
    test

  main-is:
    Main.hs

  type:
    exitcode-stdio-1.0