Version 0.9
  * Move to sqlx as database access abstraction layer. With sqlx, database access is now fully
    async. Also, database connections are made via a pool of connections. Thanks to using
    the query! macro of sqlx, SQL queries are now checkt for correct syntax and types used
    at compile time. Database instances no longer need to be of mutable.
  * Sqlite and PostgreSQL are still supported, but could no longer be used in the same
    build. The (mis-)use of an in-memory sqlite database as cache for fx rates or the like is 
    no longer required due to the CurrencyConverter trait, therefore, using both sqlite
    and PostgreSQL in the same build has lost much of its appeal. 
  * Due to compile-time checks of SQL queries the build process has become more complex. See 
    the Readme.md files of finql, finql-sqlite and finql-postgres for advice

Version 0.8
  * major refactoring of data handler: data handler has been moved to separate sub crate,
    same for sqlite and postgres adaptors. Therefore, it's up to the user if she wants to include
    sqlite or postgres or both databases (or none, using a custom implementations of AssetHandler, 
    TransactionHandler, etc.)
  * New trait CurrencyConverter for calculating fx rates, e.g. while adding cash flows in different
    currencies. The database adaptors implement this trait (so databases could still be used to 
    get fx exchange rates), but there is also a SimpleCurrencyConverter which can be initialized by
    a set of fixed fx rates, without the need to push some external fx rates in an ad hoc database to 
    use them for conversion

Version 0.7.5-0.7.7
  * In total: no change (I was just to fast with publishing and later reverted all changes
  after I realized my fatal error, sorry)
  
Version 0.7.4
  * In database handlers, store reference to database connections instead of owning
    the connection to allow (external) database pooling
  * extensions of AssetHandler and TransactionHandler traits by additional methods
  * bug fix in Transaction update query
  
Version 0.7.3
  * New market data source: comdirect (via scraping hte web pages)
  
Version 0.7.2
  * Support for alpha vantage as additional market data provider
  * `Ticker` has been extend by a `factor` for scaling quotes (e.g. 
    scale quotes in British pence to British pounds)
  * Utility functions for converting various date formats into DateTime<Utc> has
    been moved to a separate crates
  * Updated unit tests and examples.
  * Replacement dependency on `yahoo-finance` by `yahoo_finance_api`, since the 
    latter does not panic.
  
Version 0.7.1
  * `Market` holds now a market quote data base (implementing trait QuoteHandler)
  * `Market` holds now list of support market data quote providers
  * Added method for updating quotes to `Market`

Version 0.7.0
  * `MarketDataSource` is now en `enum` instead of a `struct`. In the database, it is no
  longer stored in a separate table, but as `TEXT` field in `ticker`. The number of
  supported market data sources will hopefully increase over time. On the other hand, 
  the method how to fetch quotes differs for each market data source. Therefore, it is
  in the responsibility of the application to maintain the supported market data sources, 
  i.e. a market data source is not just data, but requires appropriate implementations
  of specific functionality.

Version 0.6.2
 * Support for eodhistoricaldata as third market data provider added

Version 0.6.1
 * Fetching market data quotes from yahoo finance or gurufocus.com (requires a API token)
 * Storage of fetched market data in database
 
Version 0.6.0
 * Support of InMemoryDB has been dropped in favor of Sqlite's feature of in-memory database
   Since the supported database feature grew in complexity it is unlikely that a naive 
   in-memory database will have the same flexibility and performance as an in-memory Sqlite database.
   All examples and test have been updated. 

Version 0.5.4
 * Insert asset in database with optional name override (attaching ' (NEW)')
 * Extract asset by ISIN from database
 * Negative operator added to CashAmount
 * Rounding methods by convention added to CashAmount
 * Storing rounding conventions by currency in database
 * Improvements for easier handling of FX rates
 * Unit tests for CashAmount added
 * Some improvements in handling databases

Version 0.5.0
* Support for fx quotes, simplified insertion and request of quotes
* Addition and substraction (optional) CashAmount entities with
  automatic lookup of fx rates
* Tests and example extended for testing the new features
* Ticker include now a reference to Asset and extended by a priority field
* DataHandler trait has been split in to separate traits, AssetHandler
  and TransactionHandler
* Traits TransactionHandler and TickerHandler require AssetHandler to
  be implemented, too
* The form Amount has been renamed to CashAmount
* Some commonly used structs are re-exported on library level

Version 0.4.4
* DataHandler for PostgreSQL implemented (including update of 
  example transaction_db)

Version 0.4.3
* As an alternative to sqlite3 a simple In-Memory DB handler has been
  added (currently without guarantee of referential integrity; if this
  is required, an sqlite in-memory db could be used). This
  made some changes to the underlying data structures necessary.
* The sqlite examples have been renamed and generalized to support
  different databases as storage devices.

Version 0.4.2
* New QuoteHandler trait for handling data related to market quotes
* Implementation of QuoteHandler for sqlite3
* Example for QuoteHandler with sqlite3 added.

Version 0.4.1
* DataHandler extended for transactions
* Sqlite data handler implemented for transactions and refactoring
* Refactoring of Transaction struct
* sqlitedb example extended

Version 0.4.0
* DataHandler trait for abstraction of data storage facility added
* Sqlite handler as example of DataHandler implementation added
* Basic containers for assets, transactions and market quotes added

Version 0.3.3
* Calculation of yield-to-maturity for fixed income products added.
  This needs to be optimized, since currently the cash flow vector is
  copied instead for borrowed.
* More elaborate bond comparison example
* Assert macro for fuzzy comparison of floats
* Test cases for discounting added
* New struct `CashAmount`

Version 0.3.2
* CompoundingMethod added
* New trait Discounter for discounting future cash flows
* Operator overloads for TimePeriod add

Version 0.3.1
* CashFlow moved to new module fixed_income
* New trait FixedIncome which provides cash flow rollout method
* Re-exports of selected traits, types and functions removed from lib.rs

Version 0.3.0
* Calculation of cash flow rollout is now completed, including payment day
  adjustments. The example and unit tests have also been updated.
* Business day adjustment rules have been moved to separate module and 
  adjustment rules have been implemented
* New struct Market, which will serve as provider for market data, either as
  in-memory container or adapter to some external storage facility. The current
  implementation is only a stub.
* EasterHoliday accepts now also first and last year (required for TARGET calendar)

Version 0.2.3
* Implementation of Act/Act ICMA added. This had some wider consequence. 
  Application of Act/Act ICMA requires additional parameters for calculating
  year fractions (time period and rolling date), which have been added as optional
  parameters to the year fraction method. Since Act/Act ICMA is only applicable 
  under certain conditions, the year fraction method can fail. Therefore, a 
  Result is returned instead of float. In turn, cash flow rollout may also 
  fail.
* Since the year fraction method returns now a Result it is also flagged 
  as an error, if some 30/x method is applied to the period of 30th to 31st
  of the same month, in which case the method is also not applicable. 

Version 0.2.2
* Cash flow type added
* Currency type added
* TimePeriodError and CouponDate Error are now enums rather than structs
* DayCountConv moved to a separate module
* Implementation of day count methods (except for act/act ICMA) with many test cases
* New utility module
* First simple version of cash flow rollout (without adjustments)

Version 0.2.1
* Data structure for bonds added with example reading data from JSON
* New types for day count conventions and business day adjustments
* NthWeedDay has been renamed to NthWeek (of month), which seems to be more appropriate
* Implementation of Serialization/Deserialization of TimePeriod

Version 0.2.0
* Replacement the SimpleCalendar and the Calendar trait by one Calendar struct. At
  initialization, the holiday calendar is computed for a range of year by specifying 
  a set of holiday rules. A very broad range of holiday calendars could be generated 
  this way. The method `is_holiday` returns true only for holidays, but not for
  weekends. There is another method `is_weekend` to check for that. The new
  method `is_business_day` checks wether the given date is neither a weekend nor 
  a holiday.

Version 0.1.3
* Implementation of TimerPeriod is no longer a trait, but a struct. The calendar 
  required for BusinessDaily time period is now an external parameter. This seems
  to be a better choice, since a calendar is more a parameter than part of a method.
  Calendars may also be subject to chance, though only rarely.
