# function_cache
`function_cache` is a simple generic wrapper around a function that caches results for a given input to a hash map.
It is based on the example from [chapter 13.1 of the Rust book](https://doc.rust-lang.org/book/ch13-01-closures.html "Rust book closures link")
and serves as a small example for me to better understand the Cargo package ecosystem!
## Install
To install, simple add the `function_cache` crate your `Cargo.toml` file:
```
[dependencies]
function_cache = "0.1.0"
```
## Example
`CachedFunction` instances can be created with the `new` static method, which takes a closure.
The underlying value can be accessed with the `value(arg)` method.
```rs
let mut cached_function = CachedFunction::new(|x: i32| {
thread::sleep(Duration::from_secs(5));
x
});
let not_cached = cached_function.value(2); // returns 2, after 5 seconds
let cached = cached_function.value(2); // returns 2, but much quicker!
```
## License
Distributed under the MIT License. See [`LICENSE.md`](./License.md "License file link") for more information.