//! This is a normalized cache exchange for the [`artemis`](../artemis/index.html) 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:
//!
//! ```
//! let client = artemis::ClientBuilder::new("http://0.0.0.0")
//! .with_default_exchanges()
//! .build();
//! ```
//!
//! to this
//!
//! ```
//! 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
extern crate async_trait;
extern crate lazy_static;
pub use NormalizedCacheExchange;
use FnvBuildHasher;
pub use QueryStore;
pub use Store;
pub use ;
pub type HashSet<V> = HashSet;
pub type Dependencies = ;