Crates.io | ledger-utils |
lib.rs | ledger-utils |
version | 0.6.0 |
source | src |
created_at | 2022-01-04 12:18:08.868971 |
updated_at | 2024-03-14 10:10:34.325151 |
description | Ledger-cli (https://www.ledger-cli.org/) file processing Rust library, useful for calculating balances, creating reports etc. |
homepage | |
repository | https://github.com/marek-g/rust-ledger-utils |
max_upload_size | |
id | 507765 |
size | 88,259 |
Ledger-cli file processing Rust library, useful for calculating balances, creating reports etc.
use anyhow::{bail, Result};
use ledger_utils::{balance::Balance, Ledger};
fn main() -> Result<()> {
let ledger: Ledger = fs::read_to_string("finances.ledger")?.parse()?;
if ledger.transactions.is_empty() {
bail!("no transactions found");
}
let balance: Balance = (&ledger).into();
let mut assets: Vec<_> = balance
.account_balances
.iter()
.filter(|(name, _)| name.starts_with("Assets:"))
.collect();
assets.sort_by_key(|&(name, _)| name);
for (name, balance) in assets {
println!("{}: {}", name, balance);
}
Ok(())
}