Commit graph

5 commits

Author SHA1 Message Date
Bruno BELANYI 6df9c9d7a9 ledger: process deposits and withdrawals 2022-08-23 15:35:53 +02:00
Bruno BELANYI ab8ecf8121 transaction: use proper 'ParseError' type 2022-08-23 14:05:03 +02:00
Bruno BELANYI ffd6a20a30 transaction: add CSV deserialization
It is unfortunate that both [1] and [2] conspire to make this code way
worse than it could otherwise be with a saner (de)serialization format.

We both need to introduce `TransactionRecord` due to tagged enums not
being powerful enough in CSV, and make its `amount` field optional to
deal with the varying number of fields for each kind of transaction.

[1]: https://github.com/BurntSushi/rust-csv/issues/211
[2]: https://github.com/BurntSushi/rust-csv/issues/172
2022-08-23 14:05:03 +02:00
Bruno BELANYI c17a70bb39 cargo: add 'fpdec' dependency
Instead of implementing custom fixed-point decimal numbers, let's make
use of an existing implementation until it is deemed inappropriate.
2022-08-22 17:25:18 +02:00
Bruno BELANYI 7797f40d2e cargo: init build system 2022-08-22 17:11:53 +02:00