penny-lib-0.6.0.0: Extensible double-entry accounting system - library

Safe HaskellNone

Penny.Cabin.Interface

Description

An interface for other Penny components to use. A report is anything that is a Report.

Synopsis

Documentation

type PosArg = StringSource

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 PrintReportSource

Arguments

 = [Transaction]

All transactions; the report must sort and filter them

-> [PricePoint]

PricePoints to be included in the report

-> Exceptional Text [PreChunk]

The exception type is a strict Text, containing the error message. The success type is a list of PreChunks containing the resulting report. This allows for errors after the list of transactions has been seen.

type MkReportSource

Arguments

 = 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 (Text -> Bool))

Result from previous parsers indicating the matcher factory the user wishes to use

-> ([Transaction] -> [Box LibertyMeta])

Result from previous parsers that will sort and filter incoming transactions

-> Mode ParseResult