Crate twilight_cache_inmemory[][src]

Expand description

twilight-cache-inmemory

codecov badge 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

Iterators over the various resources stored in the cache.

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.

Resource associated with a guild.

An in-memory cache of Discord data.

Builder to configure and construct an InMemoryCache.

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

Immutable reference to a resource in the cache.

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

Iterator over a voice channel’s list of voice states.

Traits

Implemented for dispatch events.