qif 0.1.0

library that can read and write QIF (Quicken Interchange File).
Documentation

=QIF=

==Notes==

This crate was created with the aim of bringing QIF support to the CLI version of BCheckbook.

It has been tested on Rust 1.84.1 on macOS 15.3, though it should work on other platforms just fine.

===Version History===

===Limits===

Like the original library I wrote in Swift, this was designed with only noninvestment and noninvoice data in mind.

While implementing them may seem trivial, there are potential conflicts as the QIF prefixes, as found on Wikipedia.

Also, the check number field is assumed to always be numerical.

Even though, there can be other values present in QIF values. This decision was made to keep things simplistic, since the Rust project I plan to use this with only allows numerical input.

===Questions===

===Usage===

To utilize this crate, add either of the following to Cargo.toml:

====Reading====

To read a file, you would do something like this:

This will attempt to read a file and display details regarding bank transactions.

====Writing to File====

To write QIF data to a file, you would do something like this:

This will take the bank transactions and save them to a QIF file.

====Creating a Transaction====

Transactions can be created like this:

The date format above is optional, but it provides a convenience factor in that it houses some default schemes for chrono formats. The example provided above uses the MM/DD/YYYY format, and the status denotes it as reconciled.

====Creating a Split====

Splits can be created like this:

By substiting out set_amount for set_amount_via_percentage, you can have the calculations done for you, but you must also pass the original transaction's amount to the function.

Splits are then added to transactions like this:

===Contributing===

If you think you can help out making this even better, feel free to fork this project and make a pull request.

Please keep in mind that I may refuse the request, but if things work as they should, then I will likely accept it.

===Support===

While I have been writing more Rust code than Swift these days, I still do not think I can provide too much support, so you should expect to be on your own.

However, I am willing to check things out, so feel free to contact me at the email below:

tonyhawk2100@gmail.com