[−][src]Struct twilight_http::client::Client
Twilight's http client.
Almost all of the client methods require authentication, and as such, the client must be supplied with a Discord Token. Get yours here.
Examples
Create a client called client
:
use twilight_http::Client; let client = Client::new("my token");
Use ClientBuilder
to create a client called client
, with a shorter timeout:
use twilight_http::Client; use std::time::Duration; let mut client_builder = Client::builder(); client_builder .token("my token") .timeout(Duration::from_secs(5)); let client = client_builder.build()?;
All the examples on this page assume you have already created a client, and have named it
client
.
Implementations
impl Client
[src]
pub fn new(token: impl Into<String>) -> Self
[src]
Create a new client with a token.
If you want to customize the client, use builder
.
pub fn builder() -> ClientBuilder
[src]
Create a new builder to create a client.
Refer to its documentation for more information.
pub fn token(&self) -> Option<&str>
[src]
Retrieve an immutable reference to the token used by the client.
If the initial token provided is not prefixed with Bot
, it will be, and this method
reflects that.
pub fn default_allowed_mentions(&self) -> Option<AllowedMentions>
[src]
Get the default allowed mentions for sent messages.
Refer to allowed_mentions
for more information.
pub fn add_role(
&self,
guild_id: GuildId,
user_id: UserId,
role_id: RoleId
) -> AddRoleToMemberⓘImportant traits for AddRoleToMember<'_>
impl<'_> Future for AddRoleToMember<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
user_id: UserId,
role_id: RoleId
) -> AddRoleToMemberⓘ
Important traits for AddRoleToMember<'_>
impl<'_> Future for AddRoleToMember<'_> type Output = Result<()>;
Add a role to a member in a guild.
Examples
In guild 1
, add role 2
to user 3
, for the reason "test"
:
use twilight_model::id::{GuildId, RoleId, UserId}; let guild_id = GuildId(1); let role_id = RoleId(2); let user_id = UserId(3); client.add_role(guild_id, user_id, role_id).reason("test").await?;
pub fn audit_log(&self, guild_id: GuildId) -> GetAuditLogⓘImportant traits for GetAuditLog<'_>
impl<'_> Future for GetAuditLog<'_> type Output = Result<Option<AuditLog>>;
[src]
Important traits for GetAuditLog<'_>
impl<'_> Future for GetAuditLog<'_> type Output = Result<Option<AuditLog>>;
Get the audit log for a guild.
Examples
use twilight_model::id::GuildId; let guild_id = GuildId(101); let audit_log = client // not done .audit_log(guild_id) .await?;
pub fn bans(&self, guild_id: GuildId) -> GetBansⓘ
[src]
Retrieve the bans for a guild.
Examples
Retrieve the bans for guild 1
:
use twilight_model::id::GuildId; let guild_id = GuildId(1); let bans = client.bans(guild_id).await?;
pub fn ban(&self, guild_id: GuildId, user_id: UserId) -> GetBanⓘ
[src]
Get information about a ban of a guild.
Includes the user banned and the reason.
pub fn create_ban(&self, guild_id: GuildId, user_id: UserId) -> CreateBanⓘ
[src]
Bans a user from a guild, optionally with the number of days' worth of messages to delete and the reason.
Examples
Ban user 200
from guild 100
, deleting
1 day's worth of messages, for the reason "memes"
:
use twilight_model::id::{GuildId, UserId}; let guild_id = GuildId(100); let user_id = UserId(200); client.create_ban(guild_id, user_id) .delete_message_days(1)? .reason("memes") .await?;
pub fn delete_ban(&self, guild_id: GuildId, user_id: UserId) -> DeleteBanⓘ
[src]
Remove a ban from a user in a guild.
Examples
Unban user 200
from guild 100
:
use twilight_model::id::{GuildId, UserId}; let guild_id = GuildId(100); let user_id = UserId(200); client.delete_ban(guild_id, user_id).await?;
pub fn channel(&self, channel_id: ChannelId) -> GetChannelⓘImportant traits for GetChannel<'_>
impl<'_> Future for GetChannel<'_> type Output = Result<Option<Channel>>;
[src]
Important traits for GetChannel<'_>
impl<'_> Future for GetChannel<'_> type Output = Result<Option<Channel>>;
Get a channel by its ID.
Examples
Get channel 100
:
let channel_id = ChannelId(100); let channel = client.channel(channel_id).await?;
pub fn delete_channel(&self, channel_id: ChannelId) -> DeleteChannelⓘImportant traits for DeleteChannel<'_>
impl<'_> Future for DeleteChannel<'_> type Output = Result<Channel>;
[src]
Important traits for DeleteChannel<'_>
impl<'_> Future for DeleteChannel<'_> type Output = Result<Channel>;
Delete a channel by ID.
pub fn update_channel(&self, channel_id: ChannelId) -> UpdateChannelⓘImportant traits for UpdateChannel<'_>
impl<'_> Future for UpdateChannel<'_> type Output = Result<Channel>;
[src]
Important traits for UpdateChannel<'_>
impl<'_> Future for UpdateChannel<'_> type Output = Result<Channel>;
Update a channel.
All fields are optional. The minimum length of the name is 2 UTF-16 characters and the maximum is 100 UTF-16 characters.
Errors
Returns a UpdateChannelError::NameInvalid
when the length of the name is either fewer
than 2 UTF-16 characters or more than 100 UTF-16 characters.
Returns a UpdateChannelError::RateLimitPerUserInvalid
when the seconds of the rate limit
per user is more than 21600.
Returns a UpdateChannelError::TopicInvalid
when the length of the topic is more than
1024 UTF-16 characters.
pub fn channel_invites(&self, channel_id: ChannelId) -> GetChannelInvitesⓘImportant traits for GetChannelInvites<'_>
impl<'_> Future for GetChannelInvites<'_> type Output = Result<Vec<Invite>>;
[src]
Important traits for GetChannelInvites<'_>
impl<'_> Future for GetChannelInvites<'_> type Output = Result<Vec<Invite>>;
Get the invites for a guild channel.
This method only works if the channel is of type GuildChannel
.
pub fn channel_messages(&self, channel_id: ChannelId) -> GetChannelMessagesⓘImportant traits for GetChannelMessages<'_>
impl<'_> Future for GetChannelMessages<'_> type Output = Result<Vec<Message>>;
[src]
Important traits for GetChannelMessages<'_>
impl<'_> Future for GetChannelMessages<'_> type Output = Result<Vec<Message>>;
Get channel messages, by ChannelId
.
Only one of after
, around
, and before
can be specified at a time.
Once these are specified, the type returned is GetChannelMessagesConfigured
.
If limit
is unspecified, the default set by Discord is 50.
Examples
use twilight_http::Client; use twilight_model::id::{ChannelId, MessageId}; let client = Client::new("my token"); let channel_id = ChannelId(123); let message_id = MessageId(234); let limit: u64 = 6; let messages = client .channel_messages(channel_id) .before(message_id) .limit(limit)? .await?;
Errors
Returns GetChannelMessages::LimitInvalid
if the amount is less than 1 or greater than 100.
pub fn delete_channel_permission(
&self,
channel_id: ChannelId,
target_id: u64
) -> DeleteChannelPermissionⓘImportant traits for DeleteChannelPermission<'_>
impl<'_> Future for DeleteChannelPermission<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
target_id: u64
) -> DeleteChannelPermissionⓘ
Important traits for DeleteChannelPermission<'_>
impl<'_> Future for DeleteChannelPermission<'_> type Output = Result<()>;
pub fn update_channel_permission(
&self,
channel_id: ChannelId,
allow: Permissions,
deny: Permissions
) -> UpdateChannelPermission
[src]
&self,
channel_id: ChannelId,
allow: Permissions,
deny: Permissions
) -> UpdateChannelPermission
Update the permissions for a role or a user in a channel.
Examples:
Create permission overrides for a role to view the channel, but not send messages:
use twilight_model::guild::Permissions; use twilight_model::id::{ChannelId, RoleId}; let channel_id = ChannelId(123); let allow = Permissions::VIEW_CHANNEL; let deny = Permissions::SEND_MESSAGES; let role_id = RoleId(432); client.update_channel_permission(channel_id, allow, deny) .role(role_id) .await?;
pub fn channel_webhooks(&self, channel_id: ChannelId) -> GetChannelWebhooksⓘImportant traits for GetChannelWebhooks<'_>
impl<'_> Future for GetChannelWebhooks<'_> type Output = Result<Vec<Webhook>>;
[src]
Important traits for GetChannelWebhooks<'_>
impl<'_> Future for GetChannelWebhooks<'_> type Output = Result<Vec<Webhook>>;
Get all the webhooks of a channel.
pub fn current_user(&self) -> GetCurrentUserⓘImportant traits for GetCurrentUser<'_>
impl<'_> Future for GetCurrentUser<'_> type Output = Result<CurrentUser>;
[src]
Important traits for GetCurrentUser<'_>
impl<'_> Future for GetCurrentUser<'_> type Output = Result<CurrentUser>;
Get information about the current user.
pub fn update_current_user(&self) -> UpdateCurrentUserⓘImportant traits for UpdateCurrentUser<'_>
impl<'_> Future for UpdateCurrentUser<'_> type Output = Result<User>;
[src]
Important traits for UpdateCurrentUser<'_>
impl<'_> Future for UpdateCurrentUser<'_> type Output = Result<User>;
Update the current user.
All paramaters are optional. If the username is changed, it may cause the discriminator to be randomized.
pub fn current_user_connections(&self) -> GetCurrentUserConnectionsⓘImportant traits for GetCurrentUserConnections<'_>
impl<'_> Future for GetCurrentUserConnections<'_> type Output = Result<Vec<Connection>>;
[src]
Important traits for GetCurrentUserConnections<'_>
impl<'_> Future for GetCurrentUserConnections<'_> type Output = Result<Vec<Connection>>;
Get the current user's connections.
Requires the connections
OAuth2
scope.
pub fn current_user_guilds(&self) -> GetCurrentUserGuildsⓘImportant traits for GetCurrentUserGuilds<'_>
impl<'_> Future for GetCurrentUserGuilds<'_> type Output = Result<Vec<PartialGuild>>;
[src]
Important traits for GetCurrentUserGuilds<'_>
impl<'_> Future for GetCurrentUserGuilds<'_> type Output = Result<Vec<PartialGuild>>;
Returns a list of guilds for the current user.
Examples
Get the first 25 guilds with an ID after 300
and before
400
:
use twilight_model::id::GuildId; let after = GuildId(300); let before = GuildId(400); let guilds = client.current_user_guilds() .after(after) .before(before) .limit(25)? .await?;
Errors
Returns GetCurrentUserGuildsError::LimitInvalid
if the amount is greater
than 100.
pub fn update_current_user_nick(
&self,
guild_id: GuildId,
nick: impl Into<String>
) -> UpdateCurrentUserNickⓘImportant traits for UpdateCurrentUserNick<'_>
impl<'_> Future for UpdateCurrentUserNick<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
nick: impl Into<String>
) -> UpdateCurrentUserNickⓘ
Important traits for UpdateCurrentUserNick<'_>
impl<'_> Future for UpdateCurrentUserNick<'_> type Output = Result<()>;
Changes the user's nickname in a guild.
pub fn current_user_private_channels(&self) -> GetCurrentUserPrivateChannelsⓘImportant traits for GetCurrentUserPrivateChannels<'_>
impl<'_> Future for GetCurrentUserPrivateChannels<'_> type Output = Result<Vec<PrivateChannel>>;
[src]
Important traits for GetCurrentUserPrivateChannels<'_>
impl<'_> Future for GetCurrentUserPrivateChannels<'_> type Output = Result<Vec<PrivateChannel>>;
Get a list of the current user's private channels.
pub fn emojis(&self, guild_id: GuildId) -> GetEmojisⓘ
[src]
Get the emojis for a guild, by the guild's id.
Examples
Get the emojis for guild 100
:
let guild_id = GuildId(100); client.emojis(guild_id).await?;
pub fn emoji(&self, guild_id: GuildId, emoji_id: EmojiId) -> GetEmojiⓘ
[src]
Get an emoji for a guild by the the guild's ID and emoji's ID.
Examples
Get emoji 100
from guild 50
:
let guild_id = GuildId(50); let emoji_id = EmojiId(100); client.emoji(guild_id, emoji_id).await?;
pub fn create_emoji(
&self,
guild_id: GuildId,
name: impl Into<String>,
image: impl Into<String>
) -> CreateEmojiⓘImportant traits for CreateEmoji<'_>
impl<'_> Future for CreateEmoji<'_> type Output = Result<Emoji>;
[src]
&self,
guild_id: GuildId,
name: impl Into<String>,
image: impl Into<String>
) -> CreateEmojiⓘ
Important traits for CreateEmoji<'_>
impl<'_> Future for CreateEmoji<'_> type Output = Result<Emoji>;
Create an emoji in a guild.
The emoji must be a Data URI, in the form of data:image/{type};base64,{data}
where
{type}
is the image MIME type and {data}
is the base64-encoded image. Refer to the
discord docs for more information about image data.
pub fn delete_emoji(&self, guild_id: GuildId, emoji_id: EmojiId) -> DeleteEmojiⓘImportant traits for DeleteEmoji<'_>
impl<'_> Future for DeleteEmoji<'_> type Output = Result<()>;
[src]
Important traits for DeleteEmoji<'_>
impl<'_> Future for DeleteEmoji<'_> type Output = Result<()>;
Delete an emoji in a guild, by id.
pub fn update_emoji(&self, guild_id: GuildId, emoji_id: EmojiId) -> UpdateEmojiⓘImportant traits for UpdateEmoji<'_>
impl<'_> Future for UpdateEmoji<'_> type Output = Result<Emoji>;
[src]
Important traits for UpdateEmoji<'_>
impl<'_> Future for UpdateEmoji<'_> type Output = Result<Emoji>;
Update an emoji in a guild, by id.
pub fn gateway(&self) -> GetGatewayⓘImportant traits for GetGateway<'_>
impl<'_> Future for GetGateway<'_> type Output = Result<ConnectionInfo>;
[src]
Important traits for GetGateway<'_>
impl<'_> Future for GetGateway<'_> type Output = Result<ConnectionInfo>;
Get information about the gateway, optionally with additional information detailing the number of shards to use and sessions remaining.
Examples
Get the gateway connection URL without bot information:
let info = client.gateway().await?;
Get the gateway connection URL with additional shard and session information, which requires specifying a bot token:
let info = client.gateway().authed().await?; println!("URL: {}", info.url); println!("Recommended shards to use: {}", info.shards);
pub fn guild(&self, guild_id: GuildId) -> GetGuildⓘ
[src]
Get information about a guild.
pub fn create_guild(
&self,
name: impl Into<String>
) -> StdResult<CreateGuild, CreateGuildError>
[src]
&self,
name: impl Into<String>
) -> StdResult<CreateGuild, CreateGuildError>
Create a new request to create a guild.
The minimum length of the name is 2 UTF-16 characters and the maximum is 100 UTF-16 characters. This endpoint can only be used by bots in less than 10 guilds.
Errors
Returns CreateGuildError::NameInvalid
if the name length is too short or too long.
pub fn delete_guild(&self, guild_id: GuildId) -> DeleteGuildⓘImportant traits for DeleteGuild<'_>
impl<'_> Future for DeleteGuild<'_> type Output = Result<()>;
[src]
Important traits for DeleteGuild<'_>
impl<'_> Future for DeleteGuild<'_> type Output = Result<()>;
Delete a guild permanently. The user must be the owner.
pub fn update_guild(&self, guild_id: GuildId) -> UpdateGuildⓘImportant traits for UpdateGuild<'_>
impl<'_> Future for UpdateGuild<'_> type Output = Result<PartialGuild>;
[src]
Important traits for UpdateGuild<'_>
impl<'_> Future for UpdateGuild<'_> type Output = Result<PartialGuild>;
Update a guild.
All endpoints are optional. Refer to the discord docs for more information.
pub fn leave_guild(&self, guild_id: GuildId) -> LeaveGuildⓘImportant traits for LeaveGuild<'_>
impl<'_> Future for LeaveGuild<'_> type Output = Result<()>;
[src]
Important traits for LeaveGuild<'_>
impl<'_> Future for LeaveGuild<'_> type Output = Result<()>;
Leave a guild by id.
pub fn guild_channels(&self, guild_id: GuildId) -> GetGuildChannelsⓘImportant traits for GetGuildChannels<'_>
impl<'_> Future for GetGuildChannels<'_> type Output = Result<Vec<GuildChannel>>;
[src]
Important traits for GetGuildChannels<'_>
impl<'_> Future for GetGuildChannels<'_> type Output = Result<Vec<GuildChannel>>;
Get the channels in a guild.
pub fn create_guild_channel(
&self,
guild_id: GuildId,
name: impl Into<String>
) -> StdResult<CreateGuildChannel, CreateGuildChannelError>
[src]
&self,
guild_id: GuildId,
name: impl Into<String>
) -> StdResult<CreateGuildChannel, CreateGuildChannelError>
Create a new request to create a guild channel.
All fields are optional except for name. The minimum length of the name is 2 UTF-16 characters and the maximum is 100 UTF-16 characters.
Errors
Returns a CreateGuildChannelError::NameInvalid
when the length of the name is either
fewer than 2 UTF-16 characters or more than 100 UTF-16 characters.
Returns a CreateGuildChannelError::RateLimitPerUserInvalid
when the seconds of the rate
limit per user is more than 21600.
Returns a CreateGuildChannelError::TopicInvalid
when the length of the topic is more
than
1024 UTF-16 characters.
pub fn update_guild_channel_positions(
&self,
guild_id: GuildId,
channel_positions: impl Iterator<Item = (ChannelId, u64)>
) -> UpdateGuildChannelPositionsⓘImportant traits for UpdateGuildChannelPositions<'_>
impl<'_> Future for UpdateGuildChannelPositions<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
channel_positions: impl Iterator<Item = (ChannelId, u64)>
) -> UpdateGuildChannelPositionsⓘ
Important traits for UpdateGuildChannelPositions<'_>
impl<'_> Future for UpdateGuildChannelPositions<'_> type Output = Result<()>;
Modify the positions of the channels.
The minimum amount of channels to modify, is a swap between two channels.
pub fn guild_widget(&self, guild_id: GuildId) -> GetGuildWidgetⓘImportant traits for GetGuildWidget<'_>
impl<'_> Future for GetGuildWidget<'_> type Output = Result<Option<GuildWidget>>;
[src]
Important traits for GetGuildWidget<'_>
impl<'_> Future for GetGuildWidget<'_> type Output = Result<Option<GuildWidget>>;
Get the guild widget.
Refer to the discord docs for more information.
pub fn update_guild_widget(&self, guild_id: GuildId) -> UpdateGuildWidgetⓘImportant traits for UpdateGuildWidget<'_>
impl<'_> Future for UpdateGuildWidget<'_> type Output = Result<GuildWidget>;
[src]
Important traits for UpdateGuildWidget<'_>
impl<'_> Future for UpdateGuildWidget<'_> type Output = Result<GuildWidget>;
Modify the guild widget.
pub fn guild_integrations(&self, guild_id: GuildId) -> GetGuildIntegrationsⓘImportant traits for GetGuildIntegrations<'_>
impl<'_> Future for GetGuildIntegrations<'_> type Output = Result<Vec<GuildIntegration>>;
[src]
Important traits for GetGuildIntegrations<'_>
impl<'_> Future for GetGuildIntegrations<'_> type Output = Result<Vec<GuildIntegration>>;
Get the guild's integrations.
pub fn create_guild_integration(
&self,
guild_id: GuildId,
integration_id: IntegrationId,
kind: impl Into<String>
) -> CreateGuildIntegrationⓘImportant traits for CreateGuildIntegration<'_>
impl<'_> Future for CreateGuildIntegration<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
integration_id: IntegrationId,
kind: impl Into<String>
) -> CreateGuildIntegrationⓘ
Important traits for CreateGuildIntegration<'_>
impl<'_> Future for CreateGuildIntegration<'_> type Output = Result<()>;
Create a guild integration from the current user to the guild.
Refer to the discord docs for more information.
pub fn delete_guild_integration(
&self,
guild_id: GuildId,
integration_id: IntegrationId
) -> DeleteGuildIntegrationⓘImportant traits for DeleteGuildIntegration<'_>
impl<'_> Future for DeleteGuildIntegration<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
integration_id: IntegrationId
) -> DeleteGuildIntegrationⓘ
Important traits for DeleteGuildIntegration<'_>
impl<'_> Future for DeleteGuildIntegration<'_> type Output = Result<()>;
Delete an integration for a guild, by the integration's id.
pub fn update_guild_integration(
&self,
guild_id: GuildId,
integration_id: IntegrationId
) -> UpdateGuildIntegrationⓘImportant traits for UpdateGuildIntegration<'_>
impl<'_> Future for UpdateGuildIntegration<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
integration_id: IntegrationId
) -> UpdateGuildIntegrationⓘ
Important traits for UpdateGuildIntegration<'_>
impl<'_> Future for UpdateGuildIntegration<'_> type Output = Result<()>;
Update a guild's integration, by its id.
Refer to the discord docs for more information.
pub fn sync_guild_integration(
&self,
guild_id: GuildId,
integration_id: IntegrationId
) -> SyncGuildIntegrationⓘImportant traits for SyncGuildIntegration<'_>
impl<'_> Future for SyncGuildIntegration<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
integration_id: IntegrationId
) -> SyncGuildIntegrationⓘ
Important traits for SyncGuildIntegration<'_>
impl<'_> Future for SyncGuildIntegration<'_> type Output = Result<()>;
Synchronize a guild's integration by its id.
pub fn guild_invites(&self, guild_id: GuildId) -> GetGuildInvitesⓘImportant traits for GetGuildInvites<'_>
impl<'_> Future for GetGuildInvites<'_> type Output = Result<Vec<Invite>>;
[src]
Important traits for GetGuildInvites<'_>
impl<'_> Future for GetGuildInvites<'_> type Output = Result<Vec<Invite>>;
Get information about the invites of a guild.
pub fn guild_members(&self, guild_id: GuildId) -> GetGuildMembersⓘImportant traits for GetGuildMembers<'_>
impl<'_> Future for GetGuildMembers<'_> type Output = Result<Vec<Member>>;
[src]
Important traits for GetGuildMembers<'_>
impl<'_> Future for GetGuildMembers<'_> type Output = Result<Vec<Member>>;
Get the members of a guild, by id.
The upper limit to this request is 1000. If more than 1000 members are needed, the requests must be chained. Discord defaults the limit to 1.
Examples
Get the first 500 members of guild 100
after user ID 3000
:
use twilight_model::id::{GuildId, UserId}; let guild_id = GuildId(100); let user_id = UserId(3000); let members = client.guild_members(guild_id).after(user_id).await?;
Errors
Returns GetGuildMembersError::LimitInvalid
if the limit is invalid.
pub fn guild_member(&self, guild_id: GuildId, user_id: UserId) -> GetMemberⓘ
[src]
Get a member of a guild, by their id.
pub fn remove_guild_member(
&self,
guild_id: GuildId,
user_id: UserId
) -> RemoveMemberⓘImportant traits for RemoveMember<'_>
impl<'_> Future for RemoveMember<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
user_id: UserId
) -> RemoveMemberⓘ
Important traits for RemoveMember<'_>
impl<'_> Future for RemoveMember<'_> type Output = Result<()>;
Kick a member from a guild.
pub fn update_guild_member(
&self,
guild_id: GuildId,
user_id: UserId
) -> UpdateGuildMemberⓘImportant traits for UpdateGuildMember<'_>
impl<'_> Future for UpdateGuildMember<'_> type Output = Result<Member>;
[src]
&self,
guild_id: GuildId,
user_id: UserId
) -> UpdateGuildMemberⓘ
Important traits for UpdateGuildMember<'_>
impl<'_> Future for UpdateGuildMember<'_> type Output = Result<Member>;
Update a guild member.
All fields are optional. Refer to the discord docs for more information.
Errors
Returns UpdateGuildMemberError::NicknameInvalid
if the nickname length is too short or too
long.
pub fn add_guild_member_role(
&self,
guild_id: GuildId,
user_id: UserId,
role_id: RoleId
) -> AddRoleToMemberⓘImportant traits for AddRoleToMember<'_>
impl<'_> Future for AddRoleToMember<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
user_id: UserId,
role_id: RoleId
) -> AddRoleToMemberⓘ
Important traits for AddRoleToMember<'_>
impl<'_> Future for AddRoleToMember<'_> type Output = Result<()>;
pub fn remove_guild_member_role(
&self,
guild_id: GuildId,
user_id: UserId,
role_id: RoleId
) -> RemoveRoleFromMemberⓘImportant traits for RemoveRoleFromMember<'_>
impl<'_> Future for RemoveRoleFromMember<'_> type Output = Result<()>;
[src]
&self,
guild_id: GuildId,
user_id: UserId,
role_id: RoleId
) -> RemoveRoleFromMemberⓘ
Important traits for RemoveRoleFromMember<'_>
impl<'_> Future for RemoveRoleFromMember<'_> type Output = Result<()>;
Remove a role from a member in a guild, by id.
pub fn guild_preview(&self, guild_id: GuildId) -> GetGuildPreviewⓘImportant traits for GetGuildPreview<'_>
impl<'_> Future for GetGuildPreview<'_> type Output = Result<GuildPreview>;
[src]
Important traits for GetGuildPreview<'_>
impl<'_> Future for GetGuildPreview<'_> type Output = Result<GuildPreview>;
For public guilds, get the guild preview.
This works even if the user is not in the guild.
pub fn guild_prune_count(&self, guild_id: GuildId) -> GetGuildPruneCountⓘImportant traits for GetGuildPruneCount<'_>
impl<'_> Future for GetGuildPruneCount<'_> type Output = Result<GuildPrune>;
[src]
Important traits for GetGuildPruneCount<'_>
impl<'_> Future for GetGuildPruneCount<'_> type Output = Result<GuildPrune>;
Get the counts of guild members to be pruned.
pub fn create_guild_prune(&self, guild_id: GuildId) -> CreateGuildPruneⓘImportant traits for CreateGuildPrune<'_>
impl<'_> Future for CreateGuildPrune<'_> type Output = Result<Option<GuildPrune>>;
[src]
Important traits for CreateGuildPrune<'_>
impl<'_> Future for CreateGuildPrune<'_> type Output = Result<Option<GuildPrune>>;
Begin a guild prune.
Refer to the discord docs for more information.
pub fn guild_vanity_url(&self, guild_id: GuildId) -> GetGuildVanityUrlⓘImportant traits for GetGuildVanityUrl<'_>
impl<'_> Future for GetGuildVanityUrl<'_> type Output = Result<Option<String>>;
[src]
Important traits for GetGuildVanityUrl<'_>
impl<'_> Future for GetGuildVanityUrl<'_> type Output = Result<Option<String>>;
Get a guild's vanity url, if there is one.
pub fn guild_voice_regions(&self, guild_id: GuildId) -> GetGuildVoiceRegionsⓘImportant traits for GetGuildVoiceRegions<'_>
impl<'_> Future for GetGuildVoiceRegions<'_> type Output = Result<Vec<VoiceRegion>>;
[src]
Important traits for GetGuildVoiceRegions<'_>
impl<'_> Future for GetGuildVoiceRegions<'_> type Output = Result<Vec<VoiceRegion>>;
Get voice region data for the guild.
Can return VIP servers if the guild is VIP-enabled.
pub fn guild_webhooks(&self, guild_id: GuildId) -> GetGuildWebhooksⓘImportant traits for GetGuildWebhooks<'_>
impl<'_> Future for GetGuildWebhooks<'_> type Output = Result<Vec<Webhook>>;
[src]
Important traits for GetGuildWebhooks<'_>
impl<'_> Future for GetGuildWebhooks<'_> type Output = Result<Vec<Webhook>>;
Get the webhooks of a guild.
pub fn invite(&self, code: impl Into<String>) -> GetInviteⓘ
[src]
Get information about an invite by its code.
If with_counts
is called, the returned invite will contain approximate member counts.
Examples
let invite = client .invite("code") .with_counts() .await?;
pub fn create_invite(&self, channel_id: ChannelId) -> CreateInviteⓘImportant traits for CreateInvite<'_>
impl<'_> Future for CreateInvite<'_> type Output = Result<Invite>;
[src]
Important traits for CreateInvite<'_>
impl<'_> Future for CreateInvite<'_> type Output = Result<Invite>;
Create an invite, with options.
Examples
let channel_id = ChannelId(123); let invite = client .create_invite(channel_id) .max_uses(3) .await?;
pub fn delete_invite(&self, code: impl Into<String>) -> DeleteInviteⓘImportant traits for DeleteInvite<'_>
impl<'_> Future for DeleteInvite<'_> type Output = Result<()>;
[src]
Important traits for DeleteInvite<'_>
impl<'_> Future for DeleteInvite<'_> type Output = Result<()>;
Delete an invite by its code.
pub fn message(
&self,
channel_id: ChannelId,
message_id: MessageId
) -> GetMessageⓘImportant traits for GetMessage<'_>
impl<'_> Future for GetMessage<'_> type Output = Result<Option<Message>>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId
) -> GetMessageⓘ
Important traits for GetMessage<'_>
impl<'_> Future for GetMessage<'_> type Output = Result<Option<Message>>;
pub fn create_message(&self, channel_id: ChannelId) -> CreateMessageⓘImportant traits for CreateMessage<'_>
impl<'_> Future for CreateMessage<'_> type Output = Result<Message>;
[src]
Important traits for CreateMessage<'_>
impl<'_> Future for CreateMessage<'_> type Output = Result<Message>;
Send a message to a channel.
Example
let channel_id = ChannelId(123); let message = client .create_message(channel_id) .content("Twilight is best pony")? .tts(true) .await?;
Errors
The method content
returns CreateMessageError::ContentInvalid
if the content is
over 2000 UTF-16 characters.
The method embed
returns CreateMessageError::EmbedTooLarge
if the length of the
embed is over 6000 characters.
pub fn delete_message(
&self,
channel_id: ChannelId,
message_id: MessageId
) -> DeleteMessageⓘImportant traits for DeleteMessage<'_>
impl<'_> Future for DeleteMessage<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId
) -> DeleteMessageⓘ
Important traits for DeleteMessage<'_>
impl<'_> Future for DeleteMessage<'_> type Output = Result<()>;
pub fn delete_messages(
&self,
channel_id: ChannelId,
message_ids: impl Into<Vec<MessageId>>
) -> DeleteMessagesⓘImportant traits for DeleteMessages<'_>
impl<'_> Future for DeleteMessages<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_ids: impl Into<Vec<MessageId>>
) -> DeleteMessagesⓘ
Important traits for DeleteMessages<'_>
impl<'_> Future for DeleteMessages<'_> type Output = Result<()>;
Delete messages by ChannelId
and Vec<MessageId
>.
The vec count can be between 2 and 100. If the supplied MessageId
s are invalid, they
still count towards the lower and upper limits. This method will not delete messages older
than two weeks. Refer to the discord docs for more information.
pub fn update_message(
&self,
channel_id: ChannelId,
message_id: MessageId
) -> UpdateMessageⓘImportant traits for UpdateMessage<'_>
impl<'_> Future for UpdateMessage<'_> type Output = Result<Message>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId
) -> UpdateMessageⓘ
Important traits for UpdateMessage<'_>
impl<'_> Future for UpdateMessage<'_> type Output = Result<Message>;
Update a message by ChannelId
and MessageId
.
You can pass None
to any of the methods to remove the associated field.
For example, if you have a message with an embed you want to remove, you can
use .[embed](None)
to remove the embed.
Examples
Replace the content with "test update"
:
use twilight_http::Client; use twilight_model::id::{ChannelId, MessageId}; let client = Client::new("my token"); client.update_message(ChannelId(1), MessageId(2)) .content("test update".to_owned())? .await?;
Remove the message's content:
client.update_message(ChannelId(1), MessageId(2)) .content(None)? .await?;
pub fn pins(&self, channel_id: ChannelId) -> GetPinsⓘ
[src]
Get the pins of a channel.
pub fn create_pin(
&self,
channel_id: ChannelId,
message_id: MessageId
) -> CreatePinⓘ
[src]
&self,
channel_id: ChannelId,
message_id: MessageId
) -> CreatePinⓘ
Create a new pin in a channel, by ID.
pub fn delete_pin(
&self,
channel_id: ChannelId,
message_id: MessageId
) -> DeletePinⓘ
[src]
&self,
channel_id: ChannelId,
message_id: MessageId
) -> DeletePinⓘ
Delete a pin in a channel, by ID.
pub fn reactions(
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: impl Into<String>
) -> GetReactionsⓘImportant traits for GetReactions<'_>
impl<'_> Future for GetReactions<'_> type Output = Result<Vec<User>>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: impl Into<String>
) -> GetReactionsⓘ
Important traits for GetReactions<'_>
impl<'_> Future for GetReactions<'_> type Output = Result<Vec<User>>;
Get a list of users that reacted to a message with an emoji
.
This endpoint is limited to 100 users maximum, so if a message has more than 100 reactions, requests must be chained until all reactions are retireved.
pub fn create_reaction(
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType
) -> CreateReactionⓘImportant traits for CreateReaction<'_>
impl<'_> Future for CreateReaction<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType
) -> CreateReactionⓘ
Important traits for CreateReaction<'_>
impl<'_> Future for CreateReaction<'_> type Output = Result<()>;
Create a reaction in a ChannelId
on a MessageId
.
The reaction must be a variant of ReactionType
.
Examples
let channel_id = ChannelId(123); let message_id = MessageId(456); let emoji = ReactionType::Unicode { name: String::from("🌃") }; let reaction = client .create_reaction(channel_id, message_id, emoji) .await?;
pub fn delete_current_user_reaction(
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType
) -> DeleteReactionⓘImportant traits for DeleteReaction<'_>
impl<'_> Future for DeleteReaction<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType
) -> DeleteReactionⓘ
Important traits for DeleteReaction<'_>
impl<'_> Future for DeleteReaction<'_> type Output = Result<()>;
Delete the current user's (@me
) reaction on a message.
pub fn delete_reaction(
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType,
user_id: UserId
) -> DeleteReactionⓘImportant traits for DeleteReaction<'_>
impl<'_> Future for DeleteReaction<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType,
user_id: UserId
) -> DeleteReactionⓘ
Important traits for DeleteReaction<'_>
impl<'_> Future for DeleteReaction<'_> type Output = Result<()>;
Delete a reaction by a user on a message.
pub fn delete_all_reaction(
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType
) -> DeleteAllReactionⓘImportant traits for DeleteAllReaction<'_>
impl<'_> Future for DeleteAllReaction<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId,
emoji: ReactionType
) -> DeleteAllReactionⓘ
Important traits for DeleteAllReaction<'_>
impl<'_> Future for DeleteAllReaction<'_> type Output = Result<()>;
Remove all reactions on a message of an emoji.
pub fn delete_all_reactions(
&self,
channel_id: ChannelId,
message_id: MessageId
) -> DeleteAllReactionsⓘImportant traits for DeleteAllReactions<'_>
impl<'_> Future for DeleteAllReactions<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId,
message_id: MessageId
) -> DeleteAllReactionsⓘ
Important traits for DeleteAllReactions<'_>
impl<'_> Future for DeleteAllReactions<'_> type Output = Result<()>;
Delete all reactions by all users on a message.
pub fn create_typing_trigger(
&self,
channel_id: ChannelId
) -> CreateTypingTriggerⓘImportant traits for CreateTypingTrigger<'_>
impl<'_> Future for CreateTypingTrigger<'_> type Output = Result<()>;
[src]
&self,
channel_id: ChannelId
) -> CreateTypingTriggerⓘ
Important traits for CreateTypingTrigger<'_>
impl<'_> Future for CreateTypingTrigger<'_> type Output = Result<()>;
Fire a Typing Start event in the channel.
pub fn create_private_channel(
&self,
recipient_id: UserId
) -> CreatePrivateChannelⓘImportant traits for CreatePrivateChannel<'_>
impl<'_> Future for CreatePrivateChannel<'_> type Output = Result<PrivateChannel>;
[src]
&self,
recipient_id: UserId
) -> CreatePrivateChannelⓘ
Important traits for CreatePrivateChannel<'_>
impl<'_> Future for CreatePrivateChannel<'_> type Output = Result<PrivateChannel>;
Create a group DM.
This endpoint is limited to 10 active group DMs.
pub fn roles(&self, guild_id: GuildId) -> GetGuildRolesⓘImportant traits for GetGuildRoles<'_>
impl<'_> Future for GetGuildRoles<'_> type Output = Result<Vec<Role>>;
[src]
Important traits for GetGuildRoles<'_>
impl<'_> Future for GetGuildRoles<'_> type Output = Result<Vec<Role>>;
Get the roles of a guild.
pub fn create_role(&self, guild_id: GuildId) -> CreateRoleⓘImportant traits for CreateRole<'_>
impl<'_> Future for CreateRole<'_> type Output = Result<Role>;
[src]
Important traits for CreateRole<'_>
impl<'_> Future for CreateRole<'_> type Output = Result<Role>;
Create a role in a guild.
Examples
use twilight_model::id::GuildId; let guild_id = GuildId(234); client.create_role(guild_id) .color(0xd90083) .name("Bright Pink") .await?;
pub fn delete_role(&self, guild_id: GuildId, role_id: RoleId) -> DeleteRoleⓘImportant traits for DeleteRole<'_>
impl<'_> Future for DeleteRole<'_> type Output = Result<()>;
[src]
Important traits for DeleteRole<'_>
impl<'_> Future for DeleteRole<'_> type Output = Result<()>;
Delete a role in a guild, by id.
pub fn update_role(&self, guild_id: GuildId, role_id: RoleId) -> UpdateRoleⓘImportant traits for UpdateRole<'_>
impl<'_> Future for UpdateRole<'_> type Output = Result<Role>;
[src]
Important traits for UpdateRole<'_>
impl<'_> Future for UpdateRole<'_> type Output = Result<Role>;
Update a role by guild id and its id.
pub fn update_role_positions(
&self,
guild_id: GuildId,
roles: impl Iterator<Item = (RoleId, u64)>
) -> UpdateRolePositionsⓘImportant traits for UpdateRolePositions<'_>
impl<'_> Future for UpdateRolePositions<'_> type Output = Result<Vec<Role>>;
[src]
&self,
guild_id: GuildId,
roles: impl Iterator<Item = (RoleId, u64)>
) -> UpdateRolePositionsⓘ
Important traits for UpdateRolePositions<'_>
impl<'_> Future for UpdateRolePositions<'_> type Output = Result<Vec<Role>>;
Modify the position of the roles.
The minimum amount of roles to modify, is a swap between two roles.
pub fn user(&self, user_id: u64) -> GetUserⓘ
[src]
Get a user's information by id.
pub fn voice_regions(&self) -> GetVoiceRegionsⓘImportant traits for GetVoiceRegions<'_>
impl<'_> Future for GetVoiceRegions<'_> type Output = Result<Vec<VoiceRegion>>;
[src]
Important traits for GetVoiceRegions<'_>
impl<'_> Future for GetVoiceRegions<'_> type Output = Result<Vec<VoiceRegion>>;
Get a list of voice regions that can be used when creating a guild.
pub fn webhook(&self, id: WebhookId) -> GetWebhookⓘImportant traits for GetWebhook<'_>
impl<'_> Future for GetWebhook<'_> type Output = Result<Option<Webhook>>;
[src]
Important traits for GetWebhook<'_>
impl<'_> Future for GetWebhook<'_> type Output = Result<Option<Webhook>>;
Get a webhook by ID.
pub fn create_webhook(
&self,
channel_id: ChannelId,
name: impl Into<String>
) -> CreateWebhookⓘImportant traits for CreateWebhook<'_>
impl<'_> Future for CreateWebhook<'_> type Output = Result<Webhook>;
[src]
&self,
channel_id: ChannelId,
name: impl Into<String>
) -> CreateWebhookⓘ
Important traits for CreateWebhook<'_>
impl<'_> Future for CreateWebhook<'_> type Output = Result<Webhook>;
Create a webhook in a channel.
Examples
let channel_id = ChannelId(123); let webhook = client .create_webhook(channel_id, "Twily Bot") .await?;
pub fn delete_webhook(&self, id: WebhookId) -> DeleteWebhookⓘImportant traits for DeleteWebhook<'_>
impl<'_> Future for DeleteWebhook<'_> type Output = Result<()>;
[src]
Important traits for DeleteWebhook<'_>
impl<'_> Future for DeleteWebhook<'_> type Output = Result<()>;
Delete a webhook by its ID.
pub fn delete_webhook_from_url(
&self,
url: impl AsRef<str>
) -> Result<DeleteWebhook>
[src]
&self,
url: impl AsRef<str>
) -> Result<DeleteWebhook>
pub fn update_webhook(&self, webhook_id: WebhookId) -> UpdateWebhookⓘImportant traits for UpdateWebhook<'_>
impl<'_> Future for UpdateWebhook<'_> type Output = Result<Webhook>;
[src]
Important traits for UpdateWebhook<'_>
impl<'_> Future for UpdateWebhook<'_> type Output = Result<Webhook>;
Update a webhook by ID.
pub fn update_webhook_from_url(
&self,
url: impl AsRef<str>
) -> Result<UpdateWebhook>
[src]
&self,
url: impl AsRef<str>
) -> Result<UpdateWebhook>
pub fn update_webhook_with_token(
&self,
webhook_id: WebhookId,
token: impl Into<String>
) -> UpdateWebhookWithTokenⓘImportant traits for UpdateWebhookWithToken<'_>
impl<'_> Future for UpdateWebhookWithToken<'_> type Output = Result<Webhook>;
[src]
&self,
webhook_id: WebhookId,
token: impl Into<String>
) -> UpdateWebhookWithTokenⓘ
Important traits for UpdateWebhookWithToken<'_>
impl<'_> Future for UpdateWebhookWithToken<'_> type Output = Result<Webhook>;
Update a webhook, with a token, by ID.
pub fn update_webhook_with_token_from_url(
&self,
url: impl AsRef<str>
) -> Result<UpdateWebhookWithToken>
[src]
&self,
url: impl AsRef<str>
) -> Result<UpdateWebhookWithToken>
Update a webhook, with a token, by its URL.
Errors
Returns UrlError::SegmentMissing
if the URL can not be parsed.
pub fn execute_webhook(
&self,
webhook_id: WebhookId,
token: impl Into<String>
) -> ExecuteWebhookⓘImportant traits for ExecuteWebhook<'_>
impl<'_> Future for ExecuteWebhook<'_> type Output = Result<Option<Message>>;
[src]
&self,
webhook_id: WebhookId,
token: impl Into<String>
) -> ExecuteWebhookⓘ
Important traits for ExecuteWebhook<'_>
impl<'_> Future for ExecuteWebhook<'_> type Output = Result<Option<Message>>;
Executes a webhook, sending a message to its channel.
You can only specify one of content
, embeds
, or file
.
Examples
let id = WebhookId(432); let webhook = client .execute_webhook(id, "webhook token") .content("Pinkie...") .await?;
pub fn execute_webhook_from_url(
&self,
url: impl AsRef<str>
) -> Result<ExecuteWebhook>
[src]
&self,
url: impl AsRef<str>
) -> Result<ExecuteWebhook>
pub async fn raw<'_>(&'_ self, request: Request) -> Result<Response>
[src]
pub async fn request<'_, T: DeserializeOwned>(
&'_ self,
request: Request
) -> Result<T>
[src]
&'_ self,
request: Request
) -> Result<T>
pub async fn verify<'_>(&'_ self, request: Request) -> Result<()>
[src]
Trait Implementations
impl Clone for Client
[src]
impl Debug for Client
[src]
impl From<Client> for Client
[src]
fn from(reqwest_client: ReqwestClient) -> Self
[src]
Auto Trait Implementations
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,