ledger_utils/
join_ledgers.rs

1use crate::Ledger;
2
3pub fn join_ledgers(ledgers: Vec<Ledger>) -> Ledger {
4    let mut ledger = Ledger {
5        commodity_prices: Vec::new(),
6        transactions: Vec::new(),
7    };
8
9    for mut src_ledger in ledgers {
10        ledger
11            .commodity_prices
12            .append(&mut src_ledger.commodity_prices);
13        ledger.transactions.append(&mut src_ledger.transactions);
14    }
15
16    ledger.commodity_prices.sort_by_key(|price| price.datetime);
17    ledger.transactions.sort_by_key(|txn| txn.date);
18
19    ledger
20}