rusty-money 0.4.1

Parse, format and perform calculations with money safely.
Documentation
# Change Log

## [0.4.1] - 2021-01-16

* ISO: Fixed symbols for BHD, ISK, NPR, UYU and alpha code for UYW.
* ISO: Added ALL, STN, UYW currencies [@ObsceneGiraffe]https://github.com/ObsceneGiraffe.
* Crypto: Added COMP, DAI, MKR, UNI, USDC, USDT, XTZ, ZEC
* Fix: `Exchange::get_rate` returns a lifetime `Option<ExchangeRate<'a, T>>` to prevent lifetime conflicts [@RestitutorOrbis]https://github.com/RestitutorOrbis.

## [0.4.0] - 2021-01-01

rusty_money now supports defining your own currencies and has a cryptocurrency module. It no longer depends on lazy_static!,
is a bit faster and and simpler to use. Many breaking changes were needed to support this, so upgrade with care!

* define_currency_set! allows you to create your own custom currency modules. [@jimpo]https://github.com/jimpo
* CryptoCurrencies (Bitcoin, Ethereum) are now available in the `crypto` module.
* Removed dependency on lazy_static! and made library thread safe.

Breaking Changes:

* `Money::new` was deprecated, please use `Money::from_minor` instead.
* `Money::from_str()` accepts a currency reference `iso::USD` instead of string `"USD"`.
* `Money` requires lifetime and currency type annotiations.
* `money!` macro was deprecated, please use `Money::from_str` instead.
* `Currency::get()` was deprecated, please reference currencies directly by their module like `iso::USD`.
* The old Currency module is now called `iso::Currency`.
* `Currency::from_string` is now `iso::find` and accepts `&str` instead of `String` [@ObsceneGiraffe]https://github.com/ObsceneGiraffe.
* `ExchangeRate::add_or_update_rate` was deprecated, please use `ExchangeRate::set_rate` instead. [@jimpo]https://github.com/jimpo.

## [0.3.6] - 2020-12-26

* Upgraded dependencies.

## [0.3.5] - 2020-07-26

* Bugfix: Incorrect metadata for CZK, HUF, ZMK [@zacharra]https://github.com/zacharra
* Feature: Money objects can be multiplied by Decimals [@sjoerdsimons]https://github.com/sjoerdsimons

## [0.3.4] - 2020-04-19

* Bugfix: from_string rejects incorrect digit separators like 1.00,00 EUR [@sjoerdsimons]https://github.com/sjoerdsimons

## [0.3.3] - 2020-03-13

* Bugfix: Fixing incorrect name and code for BRL (Brazilian real) [@diegooliveira]https://github.com/diegooliveira

## [0.3.2] - 2020-01-26

* Bugfix: Adding or subtracting different currencies now panics.

## [0.3.1] - 2020-01-11

* Feature: Support all ISO currencies.

## [0.3.0] - 2020-01-06

* Refactor: Most interfaces now return Result<T, MoneyError>  (breaking change)
* Refactor: Money::new takes i64 minor units instead of a Decimal (breaking change)
* Refactor: Currency::find takes strs instead of strings (breaking change)
* Feature: Money objects do not round amounts unless .round() or .format!() are called. (breaking change)
* Feature: Money objects can be multiplied and divided.
* Feature: Money can be converted into different Currencies using Exchange and ExchangeRate.  
* Feature: Money objects can be converted into human readable strings with more flexible structuring.
* Feature: Money objects can be rounded half up, half down or half even.
* Feature: Added 109 new ISO currencies, which can be looked up by ISO code.

## [0.2.0] - 2019-12-21

* Currency::new was renamed to Currency::find (breaking change)
* Crate include and use structure was tweaked (breaking change)
* AED, BHD, EUR and INR Currencies are now supported.
* Supported currencies are printed with separators, symbols and signs. (e.g. -$2,000 USD)
* Currency numeric ISO code can be looked up with currency alpha numeric code.

## [0.1.0] - 2019-12-08

* Basic Money and Currency implementation

## [Planned]

* Serialization and Deserialization of Money.
* Benchmarking performance.
* no-std by default.