packages feed

timespan 0.1.0.0 → 0.2.0.0

raw patch · 4 files changed

+95/−8 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Time.TimeSpan: absTS :: TimeSpan -> TimeSpan
+ Data.Time.TimeSpan: instance GHC.Show.Show Data.Time.TimeSpan.TimeSpan
+ Data.Time.TimeSpan: timeoutTS :: TimeSpan -> IO a -> IO (Maybe a)
+ Data.Time.TimeSpan: toMicroseconds :: TimeSpan -> Double

Files

+ README.md view
@@ -0,0 +1,8 @@+# Haskell `timespan` package++[![CircleCI](https://circleci.com/gh/agrafix/timespan.svg?style=svg)](https://circleci.com/gh/agrafix/timespan)+[![Hackage](https://img.shields.io/hackage/v/timespan.svg)](http://hackage.haskell.org/package/timespan)++The `timespan` packages provides an abstract data type for time spans. You can create them using well named quantities (`seconds`) and+turn them back into a specified quantity. There are also some wrapper functions around commonly used functions that usually represent+time spans as `Int` that now explicitly take a `timespan`.
src/Data/Time/TimeSpan.hs view
@@ -2,9 +2,10 @@ module Data.Time.TimeSpan   ( TimeSpan   , milliseconds, seconds, minutes, hours, days-  , toMilliseconds, toSeconds, toMinutes, toHours, toDays+  , toMicroseconds, toMilliseconds, toSeconds, toMinutes, toHours, toDays+  , absTS   , diffUTCTimeTS, addUTCTimeTS-  , sleepTS+  , sleepTS, timeoutTS   , timeAction   ) where@@ -12,12 +13,13 @@ import Control.Concurrent import Data.Time import System.CPUTime+import System.Timeout  -- | An abstract timespan. Use the provided smart constructors to create -- a meaningful timespan newtype TimeSpan   = TimeSpan { unTimeSpan :: Double } -- as milliseconds-  deriving (Eq, Ord)+  deriving (Show, Eq, Ord)  instance Monoid TimeSpan where     mempty = TimeSpan 0@@ -38,6 +40,9 @@ days :: Double -> TimeSpan days = hours . (* 24) +toMicroseconds :: TimeSpan -> Double+toMicroseconds = (* 1000) . toMilliseconds+ toMilliseconds :: TimeSpan -> Double toMilliseconds = unTimeSpan @@ -53,14 +58,20 @@ toDays :: TimeSpan -> Double toDays = (/24) . toHours +absTS :: TimeSpan -> TimeSpan+absTS (TimeSpan x) = TimeSpan (abs x)+ diffUTCTimeTS :: UTCTime -> UTCTime -> TimeSpan diffUTCTimeTS a b = seconds $ fromRational $ toRational $ diffUTCTime a b  addUTCTimeTS :: TimeSpan -> UTCTime -> UTCTime-addUTCTimeTS a b = addUTCTime (fromRational $ toRational $ toSeconds a) b+addUTCTimeTS a = addUTCTime (fromRational $ toRational $ toSeconds a)  sleepTS :: TimeSpan -> IO ()-sleepTS ts = threadDelay (round $ toMilliseconds ts * 1000)+sleepTS ts = threadDelay (round $ toMicroseconds ts)++timeoutTS :: TimeSpan -> IO a -> IO (Maybe a)+timeoutTS ts = timeout (round $ toMicroseconds ts)  timeAction :: IO a -> IO (TimeSpan, a) timeAction action =
+ stack.yaml view
@@ -0,0 +1,66 @@+# This file was automatically generated by 'stack init'+# +# Some commonly used options have been documented as comments in this file.+# For advanced use and comprehensive documentation of the format, please see:+# http://docs.haskellstack.org/en/stable/yaml_configuration/++# Resolver to choose a 'specific' stackage snapshot or a compiler version.+# A snapshot resolver dictates the compiler version and the set of packages+# to be used for project dependencies. For example:+# +# resolver: lts-3.5+# resolver: nightly-2015-09-21+# resolver: ghc-7.10.2+# resolver: ghcjs-0.1.0_ghc-7.10.2+# resolver:+#  name: custom-snapshot+#  location: "./custom-snapshot.yaml"+resolver: lts-6.16++# User packages to be built.+# Various formats can be used as shown in the example below.+# +# packages:+# - some-directory+# - https://example.com/foo/bar/baz-0.0.2.tar.gz+# - location:+#    git: https://github.com/commercialhaskell/stack.git+#    commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a+# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a+#   extra-dep: true+#  subdirs:+#  - auto-update+#  - wai+# +# A package marked 'extra-dep: true' will only be built if demanded by a+# non-dependency (i.e. a user package), and its test suites and benchmarks+# will not be run. This is useful for tweaking upstream packages.+packages:+- '.'+# Dependency packages to be pulled from upstream that are not in the resolver+# (e.g., acme-missiles-0.3)+extra-deps: []++# Override default flag values for local packages and extra-deps+flags: {}++# Extra package databases containing global packages+extra-package-dbs: []++# Control whether we use the GHC we find on the path+# system-ghc: true+# +# Require a specific version of stack, using version ranges+# require-stack-version: -any # Default+# require-stack-version: ">=1.1"+# +# Override the architecture used by stack, especially useful on Windows+# arch: i386+# arch: x86_64+# +# Extra directories used by stack for building+# extra-include-dirs: [/path/to/dir]+# extra-lib-dirs: [/path/to/dir]+# +# Allow a newer minor version of GHC than the snapshot specifies+# compiler-check: newer-minor
timespan.cabal view
@@ -1,7 +1,7 @@ name:                timespan-version:             0.1.0.0+version:             0.2.0.0 synopsis:            Useful timespan datatype and functions-description:         Please see README.md+description:         A data type for time spans with some useful utility functions homepage:            https://github.com/agrafix/timespan#readme license:             MIT license-file:        LICENSE@@ -10,7 +10,9 @@ copyright:           2016 Alexander Thiemann category:            Web build-type:          Simple--- extra-source-files:+extra-source-files:+                   stack.yaml+                   README.md cabal-version:       >=1.10  library