artemis-normalized-cache 0.1.1

A graph-based normalized cache exchange for the artemis crate.
Documentation
# artemis-normalized-cache

This is a normalized cache exchange for the [`artemis`](https://crates.io/crates/artemis) GraphQL Client.
This is a drop-in replacement for the default [`CacheExchange`] that, instead of document
caching, caches normalized data by keys and connections between data.

`artemis` is already quite a comprehensive GraphQL client. However in several cases it may be
desirable to have data update across the entirety of an app when a response updates some known
pieces of data.

## Quick Start

After installing this crate, change the default `artemis` Client like from something like this:

```rust
let client = artemis::ClientBuilder::new("http://0.0.0.0")
    .with_default_exchanges()
    .build();
```

to this

```rust
use artemis::default_exchanges::{FetchExchange, DedupExchange};
use artemis_normalized_cache::NormalizedCacheExchange;

let client = artemis::ClientBuilder::new("http://0.0.0.0")
    .with_exchange(FetchExchange)
    .with_exchange(NormalizedCacheExchange::new())
    .with_exchange(DedupExchange)
    .build();
```

TODO: Don't steal urlq's docs you plagiarist