pub struct InMemoryCachePermissions<'a> { /* private fields */ }permission-calculator only.Expand description
Calculate the permissions of a member with information from the cache.
Implementations§
source§impl<'a> InMemoryCachePermissions<'a>
impl<'a> InMemoryCachePermissions<'a>
sourcepub const fn cache_ref(&'a self) -> &'a InMemoryCache
pub const fn cache_ref(&'a self) -> &'a InMemoryCache
Immutable reference to the underlying cache.
sourcepub const fn into_cache(self) -> &'a InMemoryCache
pub const fn into_cache(self) -> &'a InMemoryCache
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 ResourceTypes must be enabled:
Examples
use twilight_cache_inmemory::InMemoryCache;
use twilight_model::id::Id;
let cache = InMemoryCache::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 ResourceTypes must be enabled:
Examples
use twilight_cache_inmemory::InMemoryCache;
use twilight_model::id::Id;
let cache = InMemoryCache::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> Clone for InMemoryCachePermissions<'a>
impl<'a> Clone for InMemoryCachePermissions<'a>
source§fn clone(&self) -> InMemoryCachePermissions<'a>
fn clone(&self) -> InMemoryCachePermissions<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more