summaryrefslogtreecommitdiffhomepage
path: root/Types.hs
diff options
context:
space:
mode:
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