twilight-cache-inmemory
is an in-process-memory cache for the
[twilight-rs
] ecosystem. It's responsible for processing events and
caching things like guilds, channels, users, and voice states.
Statistics can be an important debugging tool for determining how large a
cache is or determining whether a cache has an expected amount of resources
within it. An interface for retrieving statistics about the amount of a
resource within the cache as a whole or on a guild-level can be retrieved
via [InMemoryCache::stats
].
By default no feature is enabled.
permission-calculator
The permission-calculator
feature flag will bring in support for the
PermissionCalculator
; an API for calculating permissions through it is
exposed via InMemoryCache::permissions
. Support for calculating the
permissions of a member on a root guild-level and in a guild channel is
included.
Refer to the permission
module for more documentation.
Update a cache with events that come in through the gateway:
```rust,norun use std::{env, error::Error}; use futures::stream::StreamExt; use twilightcacheinmemory::InMemoryCache; use twilightgateway::{Intents, Shard};
async fn main() -> Result<(), Box
// Create a cache, caching up to 10 messages per channel:
let cache = InMemoryCache::builder().message_cache_size(10).build();
while let Some(event) = events.next().await {
// Update the cache with the event.
cache.update(&event);
}
Ok(())
} ```
All first-party crates are licensed under ISC