sparkle-cache 0.14.0

A backend-agnostic Discord cache implementation for the Twilight ecosystem.
Documentation
# Sparkle Cache

[GitHub](https://github.com/laralove143/sparkle-cache)
[crates.io](https://crates.io/crates/sparkle-cache)
[docs.rs](https://docs.rs/sparkle-cache/latest)

A backend-agnostic Discord cache implementation for the Twilight ecosystem

It provides a `Cache` trait that provides methods to get data from the cache and a `Backend` trait used to add support
for a backend, refer to the documentation of each trait for more

## Usage

This crate is for adding support for a backend, if you just need to use the cache, you should use one of the crates:

- [Sparkle Cache Postgres]https://github.com/laralove143/sparkle-cache-postgres
- Please create a PR to add your crate to this list

## Compatibility

The models don't use any arrays and every field is a primitive type, this makes it compatible with schematic backends
out of the box

## Incompleteness

Only the data from events are cached, though it's on the to-do list to add support for data that requires API methods

This means this data can't be cached for now:

- Private channels
- Bans
- Auto moderation rules
- Integrations
- Scheduled events
- Invites
- Webhooks
- Missing data that you can create a PR to add to this list

## Support for libraries other than Twilight

This doesn't depend tightly on Twilight, you can easily fork this and change the Twilight models used in it

## Versioning

Because it tries to follow Twilight's version, minor versions will include breaking changes. This means you should pin
it to the latest version. For example instead of `sparkle-cache = "0.14"` do `sparkle-cache = "0.14.0"`. Of course try
to keep it at the latest version as updates usually contain bugfixes

## Features

### Tests

Enables the testing module, it's intended for libraries implementing traits in this library, and it should be enabled
only under `[dev-dependencies]`, for example

```toml
[package]
name = "sparkle-cache-some-backend"
[dev-dependencies]
sparkle-cache = { version = "x", features = ["tests"] }
[dependencies]
sparkle-cache = "x"
```

If the test error is related to this crate, please create an issue

The tests currently don't cover stickers because
of [a bug in Twilight](https://github.com/twilight-rs/twilight/issues/1954)

## Your help is needed

Any feedback or bug reports will be very useful in further development, the code is in a working state with all
essential methods done but there's many possible additions that will be added as you request them!