pub struct InMemoryCachePermissions<'a, CacheModels: CacheableModels> { /* private fields */ }
permission-calculator
only.Expand description
Calculate the permissions of a member with information from the cache.
Implementations§
Source§impl<'a, CacheModels: CacheableModels> InMemoryCachePermissions<'a, CacheModels>
impl<'a, CacheModels: CacheableModels> InMemoryCachePermissions<'a, CacheModels>
Sourcepub const fn cache_ref(&'a self) -> &'a InMemoryCache<CacheModels>
pub const fn cache_ref(&'a self) -> &'a InMemoryCache<CacheModels>
Immutable reference to the underlying cache.
Sourcepub const fn into_cache(self) -> &'a InMemoryCache<CacheModels>
pub const fn into_cache(self) -> &'a InMemoryCache<CacheModels>
Consume the statistics interface, returning the underlying cache reference.
Sourcepub const fn check_member_communication_disabled(
self,
check_member_communication_disabled: bool,
) -> Self
pub const fn check_member_communication_disabled( self, check_member_communication_disabled: bool, ) -> Self
Whether to check whether a member’s communication is disabled.
Refer to the module level documentation for information and caveats.
Defaults to being enabled.
Sourcepub fn in_channel(
&self,
user_id: Id<UserMarker>,
channel_id: Id<ChannelMarker>,
) -> Result<Permissions, ChannelError>
pub fn in_channel( &self, user_id: Id<UserMarker>, channel_id: Id<ChannelMarker>, ) -> Result<Permissions, ChannelError>
Calculate the permissions of a member in a guild channel.
Returns Permissions::all
if the user is the owner of the guild.
If the member’s communication has been disabled then they will be restricted to read-only permissions. Refer to the module level documentation for more information.
The following ResourceType
s must be enabled:
§Examples
use twilight_cache_inmemory::DefaultInMemoryCache;
use twilight_model::id::Id;
let cache = DefaultInMemoryCache::new();
// later on...
let channel_id = Id::new(4);
let user_id = Id::new(5);
let permissions = cache.permissions().in_channel(user_id, channel_id)?;
println!("User {user_id} in channel {channel_id} has permissions {permissions:?}");
§Errors
Returns a ChannelErrorType::ChannelUnavailable
error type if the
guild channel is not in the cache.
Returns a ChannelErrorType::MemberUnavailable
error type if the
member for the user in the guild is not present.
Returns a ChannelErrorType::RoleUnavailable
error type if one of the
member’s roles is not in the cache.
Sourcepub fn root(
&self,
user_id: Id<UserMarker>,
guild_id: Id<GuildMarker>,
) -> Result<Permissions, RootError>
pub fn root( &self, user_id: Id<UserMarker>, guild_id: Id<GuildMarker>, ) -> Result<Permissions, RootError>
Calculate the guild-level permissions of a member.
Returns Permissions::all
if the user is the owner of the guild.
If the member’s communication has been disabled then they will be restricted to read-only permissions. Refer to the module level documentation for more information.
The following ResourceType
s must be enabled:
§Examples
use twilight_cache_inmemory::DefaultInMemoryCache;
use twilight_model::id::Id;
let cache = DefaultInMemoryCache::new();
// later on...
let guild_id = Id::new(4);
let user_id = Id::new(5);
let permissions = cache.permissions().root(user_id, guild_id)?;
println!("User {user_id} in guild {guild_id} has permissions {permissions:?}");
§Errors
Returns a RootErrorType::MemberUnavailable
error type if the
member for the user in the guild is not present.
Returns a RootErrorType::RoleUnavailable
error type if one of the
member’s roles is not in the cache.
Trait Implementations§
Source§impl<'a, CacheModels: Clone + CacheableModels> Clone for InMemoryCachePermissions<'a, CacheModels>
impl<'a, CacheModels: Clone + CacheableModels> Clone for InMemoryCachePermissions<'a, CacheModels>
Source§fn clone(&self) -> InMemoryCachePermissions<'a, CacheModels>
fn clone(&self) -> InMemoryCachePermissions<'a, CacheModels>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more