unix-time 0.0.3 → 0.1.0
raw patch · 2 files changed
+18/−5 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.UnixTime: microSecondsToUnixDiffTime :: Int -> UnixDiffTime
+ Data.UnixTime: microSecondsToUnixDiffTime :: Integral a => a -> UnixDiffTime
- Data.UnixTime: secondsToUnixDiffTime :: Int -> UnixDiffTime
+ Data.UnixTime: secondsToUnixDiffTime :: Integral a => a -> UnixDiffTime
Files
- Data/UnixTime/Diff.hs +17/−4
- unix-time.cabal +1/−1
Data/UnixTime/Diff.hs view
@@ -22,6 +22,7 @@ calcU :: CTime -> Int32 -> UnixTime calcU sec usec = uncurry UnixTime . ajust sec $ usec +-- | Arithmetic operations where (1::UnixDiffTime) means 1 second. instance Num UnixDiffTime where UnixDiffTime s1 u1 + UnixDiffTime s2 u2 = calc (s1+s2) (u1+u2) UnixDiffTime s1 u1 - UnixDiffTime s2 u2 = calc (s1-s2) (u1-u2)@@ -32,9 +33,15 @@ | s == 0 && u == 0 = 0 | s > 0 = 1 | otherwise = -1- fromInteger i = UnixDiffTime (fromInteger s) (fromInteger u)- where (s,u) = secondMicro i+ fromInteger i = UnixDiffTime (fromInteger i) 0 +{-# RULES "Integral->UnixDiffTime" fromIntegral = secondsToUnixDiffTime #-}++instance Real UnixDiffTime where+ toRational = toFractional++{-# RULES "UnixDiffTime->Fractional" realToFrac = toFractional #-}+ ---------------------------------------------------------------- -- | Calculating difference between two 'UnixTime'.@@ -46,14 +53,16 @@ addUnixDiffTime (UnixTime s1 u1) (UnixDiffTime s2 u2) = calcU (s1+s2) (u1+u2) -- | Creating difference from seconds.-secondsToUnixDiffTime :: Int -> UnixDiffTime+secondsToUnixDiffTime :: (Integral a) => a -> UnixDiffTime secondsToUnixDiffTime sec = UnixDiffTime (fromIntegral sec) 0+{-# INLINE secondsToUnixDiffTime #-} -- | Creating difference from micro seconds.-microSecondsToUnixDiffTime :: Int -> UnixDiffTime+microSecondsToUnixDiffTime :: (Integral a) => a -> UnixDiffTime microSecondsToUnixDiffTime usec = calc (fromIntegral s) (fromIntegral u) where (s,u) = secondMicro usec+{-# INLINE microSecondsToUnixDiffTime #-} ---------------------------------------------------------------- @@ -80,3 +89,7 @@ secondMicro :: Integral a => a -> (a,a) secondMicro usec = usec `quotRem` 1000000++toFractional :: Fractional a => UnixDiffTime -> a+toFractional (UnixDiffTime s u) = realToFrac s + realToFrac u / 1000000+{-# SPECIALIZE toFractional :: UnixDiffTime -> Double #-}
unix-time.cabal view
@@ -1,5 +1,5 @@ Name: unix-time-Version: 0.0.3+Version: 0.1.0 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3