pub struct Ledger<'ctx> { /* private fields */ }Expand description
Contains processed transactions, so that users can query information.
Implementations§
Source§impl<'ctx> Ledger<'ctx>
impl<'ctx> Ledger<'ctx>
Sourcepub fn empty(ctx: &ReportContext<'ctx>) -> Self
pub fn empty(ctx: &ReportContext<'ctx>) -> Self
Returns a Ledger with no transactions at all. Useful as a
placeholder when processing failed but a Ledger instance is still
required (e.g. an error state in an interactive UI).
Sourcepub fn transactions(&self) -> impl Iterator<Item = &Transaction<'ctx>>
pub fn transactions(&self) -> impl Iterator<Item = &Transaction<'ctx>>
Returns iterator for all transactions.
Sourcepub fn register_entries<'a>(
&'a mut self,
ctx: &'a ReportContext<'ctx>,
query: &RegisterQuery<'ctx>,
) -> Result<RegisterEntries<'a, 'ctx>, QueryError>
pub fn register_entries<'a>( &'a mut self, ctx: &'a ReportContext<'ctx>, query: &RegisterQuery<'ctx>, ) -> Result<RegisterEntries<'a, 'ctx>, QueryError>
Returns a FallibleLender over RegisterEntry rows matching the
query.
The iterator owns the running cumulative Amount, and each lent
RegisterEntry borrows from it. This makes the per-row cost a few
reference fields rather than an Amount clone, which matters for UI
consumers that just want to display the rows as they stream by.
Per-row conversion may fail (missing rate at the transaction date), so
iteration is fallible via FallibleLender and yields
QueryError on error.
Only ConversionStrategy::Historical is supported when conversion is
requested; ConversionStrategy::UpToDate returns
QueryError::UnsupportedConversionStrategy. See #313.
Sourcepub fn balance(
&mut self,
ctx: &ReportContext<'ctx>,
query: &BalanceQuery<'ctx>,
) -> Result<Cow<'_, Balance<'ctx>>, QueryError>
pub fn balance( &mut self, ctx: &ReportContext<'ctx>, query: &BalanceQuery<'ctx>, ) -> Result<Cow<'_, Balance<'ctx>>, QueryError>
Returns a balance matching the given query. Note that currently we don’t have the query, that will be added soon.
Sourcepub fn eval(
&mut self,
ctx: &ReportContext<'ctx>,
expression: &str,
eval_ctx: &EvalContext,
) -> Result<Amount<'ctx>, QueryError>
pub fn eval( &mut self, ctx: &ReportContext<'ctx>, expression: &str, eval_ctx: &EvalContext, ) -> Result<Amount<'ctx>, QueryError>
Evals given expression with the given condition.