Skip to main content

Ledger

Struct Ledger 

Source
pub struct Ledger<'ctx> { /* private fields */ }
Expand description

Contains processed transactions, so that users can query information.

Implementations§

Source§

impl<'ctx> Ledger<'ctx>

Source

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).

Source

pub fn transactions(&self) -> impl Iterator<Item = &Transaction<'ctx>>

Returns iterator for all transactions.

Source

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.

Source

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.

Source

pub fn eval( &mut self, ctx: &ReportContext<'ctx>, expression: &str, eval_ctx: &EvalContext, ) -> Result<Amount<'ctx>, QueryError>

Evals given expression with the given condition.

Trait Implementations§

Source§

impl<'ctx> Debug for Ledger<'ctx>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'ctx> !RefUnwindSafe for Ledger<'ctx>

§

impl<'ctx> !Send for Ledger<'ctx>

§

impl<'ctx> !Sync for Ledger<'ctx>

§

impl<'ctx> !UnwindSafe for Ledger<'ctx>

§

impl<'ctx> Freeze for Ledger<'ctx>

§

impl<'ctx> Unpin for Ledger<'ctx>

§

impl<'ctx> UnsafeUnpin for Ledger<'ctx>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.