summaryrefslogtreecommitdiffhomepage
path: root/Types.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2017-04-27 10:29:33 -0400
committerJoey Hess <joeyh@joeyh.name>2017-04-27 10:29:33 -0400
commit952cc2941091518e61345f005b6e218bc34f75ec (patch)
treec5130b0dc4733f96b0855321919fe508b6d15fdc /Types.hs
parent937b55549b4ba72b0392d7e139e592a40eec2101 (diff)
downloaddebug-me-952cc2941091518e61345f005b6e218bc34f75ec.tar.gz
don't need Maybe ElapsedTime
Make it a monoid and use mempty = 0
Diffstat (limited to 'Types.hs')
-rw-r--r--Types.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/Types.hs b/Types.hs
index 75d22cf..678455c 100644
--- a/Types.hs
+++ b/Types.hs
@@ -60,7 +60,7 @@ instance DataSize a => DataSize (Message a) where
data Activity a = Activity
{ activity :: a
, prevActivity :: Maybe Hash
- , elapsedTime :: Maybe ElapsedTime
+ , elapsedTime :: ElapsedTime
, activitySignature :: Signature
}
deriving (Show, Generic)
@@ -68,7 +68,7 @@ data Activity a = Activity
instance DataSize a => DataSize (Activity a) where
dataSize a = dataSize (activity a)
+ maybe 0 dataSize (prevActivity a)
- + maybe 0 dataSize (elapsedTime a)
+ + dataSize (elapsedTime a)
+ dataSize (activitySignature a)
-- | A control message, which can be sent asynchronously.
@@ -157,6 +157,10 @@ newtype ElapsedTime = ElapsedTime Double
mkElapsedTime :: POSIXTime -> POSIXTime -> ElapsedTime
mkElapsedTime start end = ElapsedTime $ fromRational $ toRational (end - start)
+instance Monoid ElapsedTime where
+ mempty = ElapsedTime 0
+ mappend (ElapsedTime a) (ElapsedTime b) = ElapsedTime (a+b)
+
instance DataSize ElapsedTime where
dataSize _ = 16 -- 128 bit Double