Crate twilight_cache_inmemory[][src]

Expand description

twilight-cache-inmemory

discord badge github badge license badge rust badge

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.

Features

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.

Examples

Update a cache with events that come in through the gateway:

use std::env;
use futures::stream::StreamExt;
use twilight_cache_inmemory::InMemoryCache;
use twilight_gateway::{Intents, Shard};

let token = env::var("DISCORD_TOKEN")?;
let (shard, mut events) = Shard::new(token, Intents::GUILD_MESSAGES);
shard.start().await?;

// 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);
}

License

All first-party crates are licensed under ISC

Re-exports

pub use self::permission::InMemoryCachePermissions;

Modules

Models built for utilizing efficient caching.

permissionpermission-calculator

Calculate the permissions for members in on a guild- or channel-level with information from the cache.

Structs

Configuration for an InMemoryCache.

A thread-safe, in-memory-process cache of Discord data. It can be cloned and sent to other threads.

Builder to configure and construct an InMemoryCache.

Retrieve statistics about the number of entities of each resource in the cache.

A set of bitflags which can be used to specify what resource to process into the cache.

Traits

Implemented for dispatch events.