pub struct CreateMessage<'a> { /* private fields */ }
Expand description

Send a message to a channel.

The message must include at least one of attachments, content, components, embeds, or sticker_ids.

Example

use twilight_http::Client;
use twilight_model::id::Id;

let client = Client::new("my token".to_owned());

let channel_id = Id::new(123);
let message = client
    .create_message(channel_id)
    .content("Twilight is best pony")?
    .tts(true)
    .await?;

Implementations§

source§

impl<'a> CreateMessage<'a>

source

pub const fn allowed_mentions( self, allowed_mentions: Option<&'a AllowedMentions> ) -> Self

Specify the AllowedMentions for the message.

Unless otherwise called, the request will use the client’s default allowed mentions. Set to None to ignore this default.

source

pub fn attachments( self, attachments: &'a [Attachment] ) -> Result<Self, MessageValidationError>

Attach multiple files to the message.

Calling this method will clear 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.

source

pub fn components( self, components: &'a [Component] ) -> Result<Self, MessageValidationError>

Set the message’s list of Components.

Calling this method will clear previous calls.

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.

source

pub fn content(self, content: &'a str) -> Result<Self, MessageValidationError>

Set the message’s content.

The maximum length is 2000 UTF-16 characters.

Errors

Returns an error of type ContentInvalid if the content length is too long.

source

pub fn embeds(self, embeds: &'a [Embed]) -> Result<Self, MessageValidationError>

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.

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.

source

pub const fn fail_if_not_exists(self, fail_if_not_exists: bool) -> Self

Whether to fail sending if the reply no longer exists.

Defaults to true.

source

pub const fn flags(self, flags: MessageFlags) -> Self

Set the message’s flags.

The only supported flags are SUPPRESS_EMBEDS and SUPPRESS_NOTIFICATIONS.

source

pub const fn nonce(self, nonce: u64) -> Self

Attach a nonce to the message, for optimistic message sending.

source

pub const 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.

source

pub const fn reply(self, other: Id<MessageMarker>) -> Self

Specify the ID of another message to create a reply to.

source

pub fn sticker_ids( self, sticker_ids: &'a [Id<StickerMarker>] ) -> Result<Self, MessageValidationError>

Set the IDs of up to 3 guild stickers.

Errors

Returns an error of type StickersInvalid if the length is invalid.

source

pub const fn tts(self, tts: bool) -> Self

Specify true if the message is TTS.

source

pub fn exec(self) -> ResponseFuture<Message>

👎Deprecated since 0.14.0: use .await or into_future instead

Execute the request, returning a future resolving to a Response.

Trait Implementations§

source§

impl IntoFuture for CreateMessage<'_>

§

type Output = Result<Response<Message>, Error>

The output that the future will produce on completion.
§

type IntoFuture = ResponseFuture<Message>

Which kind of future are we turning this into?
source§

fn into_future(self) -> Self::IntoFuture

Creates a future from a value. Read more
source§

impl TryIntoRequest for CreateMessage<'_>

source§

fn try_into_request(self) -> Result<Request, Error>

Try to convert a request builder into a raw Request. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for CreateMessage<'a>

§

impl<'a> Send for CreateMessage<'a>

§

impl<'a> Sync for CreateMessage<'a>

§

impl<'a> Unpin for CreateMessage<'a>

§

impl<'a> !UnwindSafe for CreateMessage<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more