pub struct UpdateResponse<'a> { /* private fields */ }
Expand description
Edit the original message, by its token.
You can pass None
to any of the methods to remove the associated field.
Pass None
to content
to remove the content. You must ensure that the
message still contains at least one of attachments
, components
,
content
or embeds
.
This endpoint is not bound to the application’s global rate limit.
§Examples
Update the original response by setting the content to test <@3>
-
attempting to mention user ID 3 - while specifying that no entities can be
mentioned.
use std::env;
use twilight_http::Client;
use twilight_model::{channel::message::AllowedMentions, id::Id};
let client = Client::new(env::var("DISCORD_TOKEN")?);
let application_id = Id::new(1);
client
.interaction(application_id)
.update_response("token here")
// By creating a default set of allowed mentions, no entity can be
// mentioned.
.allowed_mentions(Some(&AllowedMentions::default()))
.content(Some("test <@3>"))
.await?;
Implementations§
source§impl<'a> UpdateResponse<'a>
impl<'a> UpdateResponse<'a>
sourcepub fn allowed_mentions(
self,
allowed_mentions: Option<&'a AllowedMentions>,
) -> Self
pub fn allowed_mentions( self, allowed_mentions: Option<&'a AllowedMentions>, ) -> Self
Specify the AllowedMentions
for the message.
If not called, the request will use the client’s default allowed mentions.
sourcepub fn attachments(self, attachments: &'a [Attachment]) -> Self
pub fn attachments(self, attachments: &'a [Attachment]) -> Self
Attach multiple new files to the message.
This method clears previous calls.
§Errors
Returns an error of type AttachmentDescriptionTooLarge
if
the attachments’s description is too large.
Returns an error of type AttachmentFilename
if any filename is
invalid.
sourcepub fn components(self, components: Option<&'a [Component]>) -> Self
pub fn components(self, components: Option<&'a [Component]>) -> Self
Set the message’s list of Component
s.
Calling this method will clear previous calls.
§Editing
Pass None
to clear existing components.
§Errors
Refer to the errors section of
twilight_validate::component::component
for a list of errors that
may be returned as a result of validating each provided component.
sourcepub fn content(self, content: Option<&'a str>) -> Self
pub fn content(self, content: Option<&'a str>) -> Self
Set the message’s content.
The maximum length is 2000 UTF-16 characters.
§Editing
Pass None
to remove the message content. This is impossible if it
would leave the message empty of attachments
, content
, or embeds
.
§Errors
Returns an error of type ContentInvalid
if the content length is too
long.
sourcepub fn embeds(self, embeds: Option<&'a [Embed]>) -> Self
pub fn embeds(self, embeds: Option<&'a [Embed]>) -> Self
Set the message’s list of embeds.
Calling this method will clear previous calls.
The amount of embeds must not exceed EMBED_COUNT_LIMIT
. The total
character length of each embed must not exceed EMBED_TOTAL_LENGTH
characters. Additionally, the internal fields also have character
limits. See Discord Docs/Embed Limits.
§Editing
To keep all embeds, do not call this method. To modify one or more
embeds in the message, acquire them from the previous message, mutate
them in place, then pass that list to this method. To remove all embeds,
pass None
. This is impossible if it would leave the message empty of
attachments
, content
, or embeds
.
§Examples
Create an embed and update the message with the new embed. The content of the original message is unaffected and only the embed(s) are modified.
use twilight_http::Client;
use twilight_model::id::Id;
use twilight_util::builder::embed::EmbedBuilder;
let client = Client::new("token".to_owned());
let application_id = Id::new(1);
let embed = EmbedBuilder::new()
.description(
"Powerful, flexible, and scalable ecosystem of Rust \
libraries for the Discord API.",
)
.title("Twilight")
.url("https://twilight.rs")
.validate()?
.build();
client
.interaction(application_id)
.update_response("token")
.embeds(Some(&[embed]))
.await?;
§Errors
Returns an error of type TooManyEmbeds
if there are too many embeds.
Otherwise, refer to the errors section of
twilight_validate::embed::embed
for a list of errors that may occur.
sourcepub fn keep_attachment_ids(
self,
attachment_ids: &'a [Id<AttachmentMarker>],
) -> Self
pub fn keep_attachment_ids( self, attachment_ids: &'a [Id<AttachmentMarker>], ) -> Self
Specify multiple Id<AttachmentMarker>
s already present in the target
message to keep.
If called, all unspecified attachments (except ones added with
attachments
) will be removed from the message. This is impossible if
it would leave the message empty of attachments
, content
, or
embeds
. If not called, all attachments will be kept.
sourcepub fn payload_json(self, payload_json: &'a [u8]) -> Self
pub fn payload_json(self, payload_json: &'a [u8]) -> Self
JSON encoded body of any additional request fields.
If this method is called, all other fields are ignored, except for
attachments
. See Discord Docs/Uploading Files.
§Examples
See ExecuteWebhook::payload_json
for examples.