Safe Haskell | None |
---|
An interface for other Penny components to use. A report is
anything that is a Report
.
- type PosArg = String
- type HelpStr = String
- type ArgsAndReport = ([PosArg], PrintReport)
- type ParseResult = Exceptional Text ArgsAndReport
- type PrintReport = [Transaction] -> [PricePoint] -> Exceptional Text [Chunk]
- type Report = Runtime -> (HelpStr, MkReport)
- type MkReport = CaseSensitive -> (CaseSensitive -> Text -> Exceptional Text Matcher) -> Changers -> ExprDesc -> ([Transaction] -> [Box LibertyMeta]) -> Mode ParseResult
Documentation
The function that will print the report, and the positional arguments. If there was a problem parsing the command line options, return an Exception with an error message.
Parsing the filter options can have one of two results: a help string, or a list of positional arguments and a function that prints a report. Or, the parse might fail.
type ArgsAndReport = ([PosArg], PrintReport)Source
type ParseResult = Exceptional Text ArgsAndReportSource
The result of parsing the arguments to a report. Failures are
indicated with a Text. The name of the executable and the word
error
will be prepended to this Text; otherwise, it is printed
as-is, so be sure to include any trailing newline if needed.
type PrintReportSource
= [Transaction] | All transactions; the report must sort and filter them |
-> [PricePoint] | PricePoints to be included in the report |
-> Exceptional Text [Chunk] | The exception type is a strict Text, containing the error
message. The success type is a list of either a Chunk or a PreChunk
containing the resulting report. This allows for errors after the
list of transactions has been seen. The name of the executable and
the word |
= CaseSensitive | Result from previous parses indicating whether the user desires case sensitivity (this may have been changed in the filtering options) |
-> (CaseSensitive -> Text -> Exceptional Text Matcher) | Result from previous parsers indicating the matcher factory the user wishes to use |
-> Changers | Result from previous parsers indicating which color scheme to use. |
-> ExprDesc | Result from previous parsers indicating whether the user wants RPN or infix |
-> ([Transaction] -> [Box LibertyMeta]) | Result from previous parsers that will sort and filter incoming transactions |
-> Mode ParseResult |