# 0.13
> Sun Sep 1st 2019
## Minor changes
- Add the universal implementation for the [ron](https://crates.io/crates/ron) crate. It is
accessible via the `Ron` type.
# 0.12
> Sat Jun 8th 2019
- Switch from [tempdir](https://crates.io/crates/tempdir) to
[tempfile](https://crates.io/crates/tempdir) in `dev-dependencies`.
- Add the universal implementation for the [toml](https://crates.io/crates/toml) crate. It is
accessible via the `Toml` type.
## 0.11.3
> Thu Apr 25th 2019
- Update the README with [cargo-sync-readme](https://crates.io/crates/cargo-sync-readme).
## 0.11.2
> Wed Apr 24th 2019
- Add the `"arc"` feature gate, allowing to replace the internal representation of resources by
`Arc`-ed objects in order to help sending resources accross threads. This is a temporary patch
until a better solution shows up.
## 0.11.1
> Thu Jan 24th 2019
- Add universal JSON support (via **serde**).
# 0.11
> Saturday, 27th of October 2018
- Change the key system. Keys are now used as type variables in the `Load` trait in order to allow
for custom keys to be more easily used across an entire `Store` use through the code base. This
is also the first premise of a bigger change that will arrive in `0.12` or `0.13`: resource
sources and event collectors customization.
- Remove `FSKey`, `LogicalKey`, `DepKey`.
- Add the convenient `SimpleKey` type.
- Enhance the documentation.
# 0.10
> Sunday, 30th of September 2018
- Replace and remove the `std::error::Error` constraint by `Display` in the `Error` associated
type of the `Load` trait.
- Enhance the implementation of the `Display` trait for several types.
- Implement `Display` for the `DepKey` type.
# 0.9
> Tuesday, 25th of September 2018
- Add the resource discovery mechanism.
- Change some internal code about debounced events. That has the effect to change the interface of
the debounce duration’s type, going from *milliseconds* as `u64` to a more common and pleasant
type to work with: `std::time::Duration`.
# 0.8
> Monday, 13th of August 2018
- Fix a typo in the `RootDoesNotExist` error type.
## 0.7.3
> Tuesday, 24th of July 2018
- Overall documentation enhancement.
- Add the `Inspect` trait. This trait is there to help people make libraries using **warmy** more
composable.
## 0.7.2
> Monday, April, 30th 2018
- Fix a typo in the README.md. (am I drunk or what?)
## 0.7.1
> Monday, April, 30th 2018
- Fix a typo in the README.md.
# 0.7
> Monday, April, 30th 2018
- Refactor and reworked all the key system. The new system implements a
[VFS](https://en.wikipedia.org/wiki/Virtual_file_system) and is easier to use – among important
changes: the functional dependency between a key and the resource it points to was removed and is
now injected by the implementation.
- Add a `rustfmt.toml` file to the project. This is an experiment only to see whether it makes it
easier to collaborate.
- Add context passing. That enables situations where a mutable reference can be passed to a
loading or even reloading resource, allowing for several interesting situations (loading /
reloading statistics, tuning, etc.).
- Add loading and reloading methods. Those are tag-only type variables that can be used to
implement `Load` several times for a same type `T`, giving it the possibility to load or reload
via several algorithms (JSON, YAML, custom, etc.).
- Complete rewrite of the documentation. The documentation index (at the crate level) now contains
a pretty detailed and as exhaustive as possible about **warmy** and everything that can be done
with it. (hint: if you’re a developer and state that something is missing, please open an issue or
even better, please open a merge request if you have spare time!).
> A gigantic **thank you** to [@icefoxen](https://github.com/icefoxen) for all their contributions
> to the crate, especially the context passing feature (it was their idea!) and all the testing they
> have done – `warmy` was tested with success with [ggez](https://crates.io/crates/ggez); how cool
> is that!
## 0.6.1
> Saturday, April, 7th 2018
- Add functions to build both `PathKey` and `LogicalKey`.
# 0.6.0
- The `update_await_time_ms` `StoreOpt` value is now defaulted to **50ms**. You must think of it as:
“If a resource gets written, if nothing happens for the next `update_await_time_ms`, reload it.”
You are free to change that value and experiment with it. However, keep in mind that a too much
high value would result in latency, and that a too much low value could miss give you an incorrect
behavior. To understand that, think of a copy of a large resource (a texture for instance). It’s
very likely that the resource will be stream-copied to the file system, generating several write
file system event that `warmy` will see. If the time between each write is higher than the value
of `update_await_time_ms`, the reload code will be ran while the resource is still being
stream-copied! Thus, **50ms** seems pretty fair (it’s actually pretty high, but you never know).
- Interface change: you now handle a `Store` around, but the `Load` code handles a
`Storage` instead of a `Store`. This is needed to enable partial borrowing
optimizations.
- Fix a bug for long-lasting reloading resources and OS bytes chunks streaming.
- Complete rewrite of internals via partial borrowing and thus, way less allocations.
## 0.5.2
- Fix premature dependency drop when reloading a resource.
## 0.5.1
- In `Load::reload`, change the `_: &Self` into `&self`. Sorry for that. :D
# 0.5.0
- Fix upper-bounds for notify dependency.
- Introduce *logical resources*. Those are resources that don’t *directly* map to a path in the file
system, yet require hot-reloading and caching.
- Because of *logical resources*, the `Load` trait also get reviewed: the `from_fs` function now
becomes `load` and doesn’t take a `Path`-ref-like value anymore, but depends on the kind of key
your type selects via the associated `Key` type.
- Various fixes for dependencies.
- Documentation enhancement and update.
# 0.4.0
- Disable people from performing *path sharing*. It is now forbidden to have two separate
(different types) resources pointing to the same path. You’ll get errors when trying to get the
second resource.
# 0.3.0
- Fix paths handled to the `from_fs` method. The paths are now correctly prefixed by the
canonicalized root.
# 0.2.0
- Overall enhancement of the documentation.
- New error system based on `::std::error::Error` and custom error.
- Various `notify` fixes.
# 0.1.0
- Initial revision.