cached 0.21.1

Generic cache implementations and simplified function memoization
Documentation
# Changelog


## [Unreleased]

## Added

## Changed

## Removed


## [0.21.1] / [0.5.0]

## Added

- Support mutual `size` & `time` args in the cached proc macro.
  Added when TimedSizedCache was added, but forgot to release
  the cached_proc_macro crate update.
## Changed
## Removed

## [0.21.0]

## Added

- Add a TimedSizedCache combining LRU and timed/ttl logic
## Changed
## Removed

## [0.20.0]

## Added

- Add new CachedAsync trait. Only present with async feature. Adds two async function in the entry API style of HashMap
## Changed
## Removed

## [0.19.0] / [0.4.0]

## Added

## Changed

- Add type hint `_result!` macros
- remove unnecessary transmute in cache reset
- remove unnecessary clones in proc macro
## Removed

## [0.18.0] / [0.3.0]

## Added

## Changed

- use `async-mutex` instead of full `async-std`
## Removed

## [0.17.0]

## Added

## Changed

- Store inner values when `result=true` or `option=true`. The `Error` type in the
`Result` now no longer needs to implement `Clone`.
## Removed

## [0.16.0]

## Added

- add `cache_set_lifespan` to change the cache lifespace, old value returned.
## Changed
## Removed

## [0.15.1]

## Added

## Changed

- fix proc macro when result=true, regression from changing `cache_set` to return the previous value
## Removed

## [0.15.0]

## Added

- add `Cached` implementation for std `HashMap`
## Changed
- trait `Cached` has a new method `cache_get_or_set_with`
- `cache_set` now returns the previous value if any
## Removed

## [0.14.0]

## Added

- add Clone, Debug trait derives on pub types

## Changed


## Removed


## [0.13.1]

## Added


## Changed

- fix proc macro documentation

## Removed


## [0.13.0]

## Added

- proc macro version
- async support when using the new proc macro version

## Changed


## Removed


## [0.12.0]

## Added

- Add `cache_get_mut` to `Cached` trait, to allow mutable access for values in the cache.
- Change the type of `hits` and `misses` to be `u64`.

## Changed


## Removed


## [0.11.0]

## Added

- Add `value_order` method to SizedCache, similar to `key_order`

## Changed


## Removed


## [0.10.0]

## Added

- add `cache_reset` trait method for resetting cache collections to
  their initial state

## Changed

- Update `once_cell` to 1.x

## Removed


## [0.9.0]

## Added


## Changed

- Replace SizedCache implementation to avoid O(n) lookup on cache-get
- Update to Rust-2018 edition
- cargo fmt everything

## Removed



## [0.8.1]

## Added


## Changed

- Replace inner cache when "clearing" unbounded cache

## Removed



## [0.8.0]

## Added


## Changed

- Switch to `once_cell`. Library users no longer need to import `lazy_static`

## Removed


## [0.7.0]

## Added

- Add `cache_clear` and `cache_result` to `Cached` trait
  - Allows for defeating cache entries if desired

## Changed


## Removed


## [0.6.2]

## Added


## Changed

- Update documentation
  - Note the in-memory nature of cache stores
  - Note the behavior of memoized functions under concurrent access

## Removed


## [0.6.1]

## Added


## Changed

- Fixed duplicate key eviction in `SizedCache::cache_set`. This would manifest when
  `cached` functions called with duplicate keys would race set an uncached key,
  or if `SizedCache` was used directly.

## Removed


## [0.6.0]

## Added

- Add `cached_result` and `cached_key_result` to allow the caching of success for a function that returns `Result`.
- Add `cached_control` macro to allow specifying functionality
  at key points of the macro

## [0.5.0]

## Added

- Add `cached_key` macro to allow defining the caching key

## Changed

- Tweak `cached` macro syntax
- Update readme

## Removed



## [0.4.4]

## Added


## Changed

- Update trait docs

## Removed



## [0.4.3]

## Added


## Changed

- Update readme
- Update examples
- Update crate documentation and examples

## Removed