;lib: derive NFData for MultiBalanceReport, PriceGraph for criterion

Allow these to be timed with criterion at ghci prompt.
This commit is contained in:
Simon Michael 2019-08-01 18:23:31 +02:00
parent fe5c49dc36
commit 70986769ef
2 changed files with 10 additions and 2 deletions

View File

@ -464,7 +464,9 @@ data PriceGraph = PriceGraph {
-- but those have to be Real for shortest path finding, -- but those have to be Real for shortest path finding,
-- so we'd have to transform them all first. -- so we'd have to transform them all first.
} }
deriving (Show) deriving (Show,Generic)
instance NFData PriceGraph
-- | What kind of value conversion should be done on amounts ? -- | What kind of value conversion should be done on amounts ?
-- UI: --value=cost|end|now|DATE[,COMM] -- UI: --value=cost|end|now|DATE[,COMM]

View File

@ -1,4 +1,4 @@
{-# LANGUAGE FlexibleInstances, RecordWildCards, ScopedTypeVariables, OverloadedStrings #-} {-# LANGUAGE FlexibleInstances, RecordWildCards, ScopedTypeVariables, OverloadedStrings, DeriveGeneric #-}
{-| {-|
Multi-column balance reports, used by the balance command. Multi-column balance reports, used by the balance command.
@ -20,6 +20,8 @@ module Hledger.Reports.MultiBalanceReport (
) )
where where
import GHC.Generics (Generic)
import Control.DeepSeq (NFData)
import Data.List import Data.List
import Data.Maybe import Data.Maybe
import Data.Ord import Data.Ord
@ -69,9 +71,13 @@ newtype MultiBalanceReport =
,[MultiBalanceReportRow] ,[MultiBalanceReportRow]
,MultiBalanceReportTotals ,MultiBalanceReportTotals
) )
deriving (Generic)
type MultiBalanceReportRow = (AccountName, AccountName, Int, [MixedAmount], MixedAmount, MixedAmount) type MultiBalanceReportRow = (AccountName, AccountName, Int, [MixedAmount], MixedAmount, MixedAmount)
type MultiBalanceReportTotals = ([MixedAmount], MixedAmount, MixedAmount) -- (Totals list, sum of totals, average of totals) type MultiBalanceReportTotals = ([MixedAmount], MixedAmount, MixedAmount) -- (Totals list, sum of totals, average of totals)
instance NFData MultiBalanceReport
instance Show MultiBalanceReport where instance Show MultiBalanceReport where
-- use pshow (pretty-show's ppShow) to break long lists onto multiple lines -- use pshow (pretty-show's ppShow) to break long lists onto multiple lines
-- we add some bogus extra shows here to help it parse the output -- we add some bogus extra shows here to help it parse the output