pub struct GatewayIntents {
pub bits: u64,
}Expand description
[Gateway Intents] will limit the events your bot will receive via the gateway. By default, all intents except Privileged Intents are selected.
§What are Intents
A gateway intent sets the types of gateway events (e.g. member joins, guild integrations, guild emoji updates, …) the bot shall receive. Carefully picking the needed intents greatly helps the bot to scale, as less intents will result in less events to be received via the network from Discord and less processing needed for handling the data.
§Privileged Intents
The intents GatewayIntents::GUILD_PRESENCES and GatewayIntents::GUILD_MEMBERS
are Privileged Intents. They need to be enabled in the
developer portal.
Note: Once the bot is in 100 guilds or more, the bot must be verified in order to use privileged intents.
Fields§
§bits: u64The flags composing gateway intents.
§Note
Do not modify this yourself; use the provided methods. Do the same when creating, unless you’re absolutely certain that you’re giving valid intents flags.
Implementations§
Source§impl GatewayIntents
impl GatewayIntents
Sourcepub const GUILDS: Self
pub const GUILDS: Self
Enables following gateway events:
- GuildCreate
- GUILD_DELETE
- GUILD_ROLE_CREATE
- GUILD_ROLE_UPDATE
- GUILD_ROLE_DELETE
- CHANNEL_CREATE
- CHANNEL_UPDATE
- CHANNEL_DELETE
- CHANNEL_PINS_UPDATE
- THREAD_CREATE
- THREAD_UPDATE
- THREAD_DELETE
- THREAD_LIST_SYNC
- THREAD_MEMBER_UPDATE
- THREAD_MEMBERS_UPDATE
- STAGE_INSTANCE_CREATE
- STAGE_INSTANCE_UPDATE
- STAGE_INSTANCE_DELETE
Sourcepub const GUILD_MEMBERS: Self
pub const GUILD_MEMBERS: Self
Enables following gateway events:
- GUILD_MEMBER_ADD
- GUILD_MEMBER_UPDATE
- GUILD_MEMBER_REMOVE
- THREAD_MEMBERS_UPDATE
Info: This intent is privileged. In order to use it, you must head to your application in the Developer Portal and enable the toggle for Privileged Intents.
This intent is also necessary to even receive the events in contains.
Sourcepub const GUILD_BANS: Self
pub const GUILD_BANS: Self
Enables following gateway events:
- GUILD_BAN_ADD
- GUILD_BAN_REMOVE
Sourcepub const GUILD_EMOJIS: Self
pub const GUILD_EMOJIS: Self
Enables following gateway event:
- GUILD_EMOJIS_UPDATE
Sourcepub const GUILD_INTEGRATIONS: Self
pub const GUILD_INTEGRATIONS: Self
Enables following gateway event:
- GUILD_INTEGRATIONS_UPDATE
- INTEGRATION_CREATE
- INTEGRATION_UPDATE
- INTEGRATION_DELETE
Sourcepub const GUILD_WEBHOOKS: Self
pub const GUILD_WEBHOOKS: Self
Enables following gateway event:
- WEBHOOKS_UPDATE
Sourcepub const GUILD_INVITES: Self
pub const GUILD_INVITES: Self
Enables following gateway events:
- INVITE_CREATE
- INVITE_DELETE
Sourcepub const GUILD_VOICE_STATES: Self
pub const GUILD_VOICE_STATES: Self
Enables following gateway event:
- VOICE_STATE_UPDATE
Sourcepub const GUILD_PRESENCES: Self
pub const GUILD_PRESENCES: Self
Enables following gateway event:
- PRESENCE_UPDATE
Info: This intent is privileged. In order to use it, you must head to your application in the Developer Portal and enable the toggle for Privileged Intents.
This intent is also necessary to even receive the events in contains.
Sourcepub const GUILD_MESSAGES: Self
pub const GUILD_MESSAGES: Self
Enables following gateway events:
- MESSAGE_CREATE
- MESSAGE_UPDATE
- MESSAGE_DELETE
- MESSAGE_DELETE_BULK
Sourcepub const GUILD_MESSAGE_REACTIONS: Self
pub const GUILD_MESSAGE_REACTIONS: Self
Enables following gateway events:
- MESSAGE_REACTION_ADD
- MESSAGE_REACTION_REMOVE
- MESSAGE_REACTION_REMOVE_ALL
- MESSAGE_REACTION_REMOVE_EMOJI
Sourcepub const GUILD_MESSAGE_TYPING: Self
pub const GUILD_MESSAGE_TYPING: Self
Enable following gateway event:
- TYPING_START
Sourcepub const DIRECT_MESSAGES: Self
pub const DIRECT_MESSAGES: Self
Enable following gateway events:
- MESSAGE_CREATE
- MESSAGE_UPDATE
- MESSAGE_DELETE
- CHANNEL_PINS_UPDATE
Sourcepub const DIRECT_MESSAGE_REACTIONS: Self
pub const DIRECT_MESSAGE_REACTIONS: Self
Enable following gateway events:
- MESSAGE_REACTION_ADD
- MESSAGE_REACTION_REMOVE
- MESSAGE_REACTION_REMOVE_ALL
- MESSAGE_REACTION_REMOVE_EMOJI
Sourcepub const DIRECT_MESSAGE_TYPING: Self
pub const DIRECT_MESSAGE_TYPING: Self
Enable following gateway event:
- TYPING_START
Sourcepub const fn from_bits(bits: u64) -> Option<Self>
pub const fn from_bits(bits: u64) -> Option<Self>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
Sourcepub const fn from_bits_truncate(bits: u64) -> Self
pub const fn from_bits_truncate(bits: u64) -> Self
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
Sourcepub const unsafe fn from_bits_unchecked(bits: u64) -> Self
pub const unsafe fn from_bits_unchecked(bits: u64) -> Self
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
§Safety
The caller of the bitflags! macro can chose to allow or
disallow extra bits for their bitflags type.
The caller of from_bits_unchecked() has to ensure that
all bits correspond to a defined flag or that extra bits
are valid for this bitflags type.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Returns true if there are flags common to both self and other.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Returns true if all of the flags in other are contained within self.
Sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Inserts or removes the specified flags depending on the passed value.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
Returns the intersection between the flags in self and
other.
Specifically, the returned set contains only the flags which are
present in both self and other.
This is equivalent to using the & operator (e.g.
ops::BitAnd), as in flags & other.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in either self or other, including any which are
present in both (see Self::symmetric_difference if that
is undesirable).
This is equivalent to using the | operator (e.g.
ops::BitOr), as in flags | other.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
Returns the difference between the flags in self and other.
Specifically, the returned set contains all flags present in
self, except for the ones present in other.
It is also conceptually equivalent to the “bit-clear” operation:
flags & !other (and this syntax is also supported).
This is equivalent to using the - operator (e.g.
ops::Sub), as in flags - other.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
Returns the symmetric difference between the flags
in self and other.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
both. Equivalently, it contains the flags present in exactly
one of the sets self and other.
This is equivalent to using the ^ operator (e.g.
ops::BitXor), as in flags ^ other.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
Returns the complement of this set of flags.
Specifically, the returned set contains all the flags which are
not set in self, but which are allowed for this type.
Alternatively, it can be thought of as the set difference
between Self::all() and self (e.g. Self::all() - self)
This is equivalent to using the ! operator (e.g.
ops::Not), as in !flags.
Trait Implementations§
Source§impl Binary for GatewayIntents
impl Binary for GatewayIntents
Source§impl BitAnd for GatewayIntents
impl BitAnd for GatewayIntents
Source§impl BitAndAssign for GatewayIntents
impl BitAndAssign for GatewayIntents
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
Source§impl BitOr for GatewayIntents
impl BitOr for GatewayIntents
Source§fn bitor(self, other: GatewayIntents) -> Self
fn bitor(self, other: GatewayIntents) -> Self
Returns the union of the two sets of flags.
Source§type Output = GatewayIntents
type Output = GatewayIntents
| operator.Source§impl BitOrAssign for GatewayIntents
impl BitOrAssign for GatewayIntents
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
Source§impl BitXor for GatewayIntents
impl BitXor for GatewayIntents
Source§impl BitXorAssign for GatewayIntents
impl BitXorAssign for GatewayIntents
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
Source§impl Clone for GatewayIntents
impl Clone for GatewayIntents
Source§fn clone(&self) -> GatewayIntents
fn clone(&self) -> GatewayIntents
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GatewayIntents
impl Debug for GatewayIntents
Source§impl Default for GatewayIntents
impl Default for GatewayIntents
Source§impl<'de> Deserialize<'de> for GatewayIntents
impl<'de> Deserialize<'de> for GatewayIntents
Source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
Source§impl Extend<GatewayIntents> for GatewayIntents
impl Extend<GatewayIntents> for GatewayIntents
Source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl FromIterator<GatewayIntents> for GatewayIntents
impl FromIterator<GatewayIntents> for GatewayIntents
Source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
Source§impl Hash for GatewayIntents
impl Hash for GatewayIntents
Source§impl LowerHex for GatewayIntents
impl LowerHex for GatewayIntents
Source§impl Not for GatewayIntents
impl Not for GatewayIntents
Source§impl Octal for GatewayIntents
impl Octal for GatewayIntents
Source§impl Ord for GatewayIntents
impl Ord for GatewayIntents
Source§fn cmp(&self, other: &GatewayIntents) -> Ordering
fn cmp(&self, other: &GatewayIntents) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for GatewayIntents
impl PartialEq for GatewayIntents
Source§impl PartialOrd for GatewayIntents
impl PartialOrd for GatewayIntents
Source§impl Serialize for GatewayIntents
impl Serialize for GatewayIntents
Source§impl Sub for GatewayIntents
impl Sub for GatewayIntents
Source§impl SubAssign for GatewayIntents
impl SubAssign for GatewayIntents
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.
Source§impl UpperHex for GatewayIntents
impl UpperHex for GatewayIntents
impl Copy for GatewayIntents
impl Eq for GatewayIntents
impl StructuralPartialEq for GatewayIntents
Auto Trait Implementations§
impl Freeze for GatewayIntents
impl RefUnwindSafe for GatewayIntents
impl Send for GatewayIntents
impl Sync for GatewayIntents
impl Unpin for GatewayIntents
impl UnwindSafe for GatewayIntents
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CallHasher for T
impl<T> CallHasher for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.