penny-lib-0.14.0.0: lib/Penny/Cabin/Balance/MultiCommodity/Parser.hs
module Penny.Cabin.Balance.MultiCommodity.Parser (
ParseOpts(..)
, allSpecs
) where
import qualified Penny.Cabin.Options as CO
import qualified Penny.Cabin.Parsers as P
import qualified System.Console.MultiArg as MA
-- | Options for the Balance report that have been parsed from the
-- command line.
data ParseOpts = ParseOpts
{ showZeroBalances :: CO.ShowZeroBalances
, order :: P.SortOrder
}
zeroBalances :: MA.OptSpec (ParseOpts -> ParseOpts)
zeroBalances = fmap toResult P.zeroBalances
where
toResult szb o = o { showZeroBalances = szb }
parseOrder :: MA.OptSpec (ParseOpts -> ParseOpts)
parseOrder = fmap toResult P.order
where
toResult x o = o { order = x }
allSpecs :: [MA.OptSpec (ParseOpts -> ParseOpts)]
allSpecs = [zeroBalances, parseOrder]