Struct serenity::model::interactions::ApplicationCommand[][src]

#[non_exhaustive]
pub struct ApplicationCommand { pub id: CommandId, pub application_id: ApplicationId, pub guild_id: Option<GuildId>, pub name: String, pub description: String, pub options: Vec<ApplicationCommandOption>, pub default_permission: bool, }
This is supported on crate feature unstable_discord_api only.
Expand description

The base command model that belongs to an application.

Fields (Non-exhaustive)

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct {{ .. }} syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
id: CommandId
Expand description

The command Id.

application_id: ApplicationId
Expand description

The parent application Id.

guild_id: Option<GuildId>
Expand description

The command guild Id, if it is a guild command.

Note: It may only be present if it is received through the gateway.

name: String
Expand description

The command name.

description: String
Expand description

The command description.

options: Vec<ApplicationCommandOption>
Expand description

The parameters for the command.

default_permission: bool
Expand description

Whether the command is enabled by default when the application is added to a guild.

Implementations

impl ApplicationCommand[src]

pub async fn create_global_application_command<F>(
    http: impl AsRef<Http>,
    f: F
) -> Result<ApplicationCommand> where
    F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand
[src]

Creates a global ApplicationCommand, overriding an existing one with the same name if it exists.

When a created ApplicationCommand is used, the InteractionCreate event will be emitted.

Note: Global commands may take up to an hour to become available.

As such, it is recommended that guild application commands be used for testing purposes.

Examples

Create a simple ping command

use serenity::model::{interactions::ApplicationCommand, id::ApplicationId};

let _ = ApplicationCommand::create_global_application_command(&http, |a| {
   a.name("ping")
    .description("A simple ping command")
})
.await;

Create a command that echoes what is inserted

use serenity::model::{
    interactions::{ApplicationCommand, ApplicationCommandOptionType},
    id::ApplicationId
};

let _ = ApplicationCommand::create_global_application_command(&http, |a| {
   a.name("echo")
    .description("What is said is echoed")
    .create_option(|o| {
        o.name("to_say")
         .description("What will be echoed")
         .kind(ApplicationCommandOptionType::String)
         .required(true)
    })
})
.await;

Errors

May return an Error::Http if the ApplicationCommand is illformed, such as if more than 10 choices are set. See the API Docs for further details.

Can also return an Error::Json if there is an error in deserializing the response.

pub async fn create_global_application_commands<F>(
    http: impl AsRef<Http>,
    f: F
) -> Result<Vec<ApplicationCommand>> where
    F: FnOnce(&mut CreateApplicationCommands) -> &mut CreateApplicationCommands
[src]

Same as create_global_application_command but allows to create more than one global command per call.

pub async fn edit_global_application_command<F>(
    http: impl AsRef<Http>,
    command_id: CommandId,
    f: F
) -> Result<ApplicationCommand> where
    F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand
[src]

Edits a global command by its Id.

pub async fn get_global_application_commands(
    http: impl AsRef<Http>
) -> Result<Vec<ApplicationCommand>>
[src]

Gets all global commands.

pub async fn get_global_application_command(
    http: impl AsRef<Http>,
    command_id: CommandId
) -> Result<ApplicationCommand>
[src]

Gets a global command by its Id.

pub async fn delete_global_application_command(
    http: impl AsRef<Http>,
    command_id: CommandId
) -> Result<()>
[src]

Deletes a global command by its Id.

Trait Implementations

impl Clone for ApplicationCommand[src]

fn clone(&self) -> ApplicationCommand[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for ApplicationCommand[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<'de> Deserialize<'de> for ApplicationCommand[src]

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
    __D: Deserializer<'de>, 
[src]

Deserialize this value from the given Serde deserializer. Read more

impl Serialize for ApplicationCommand[src]

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
    __S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

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

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

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

pub fn vzip(self) -> V

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]