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
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]