Skip to main content

CommandParameter

Struct CommandParameter 

Source
pub struct CommandParameter<U, E> {
    pub name: String,
    pub name_localizations: HashMap<String, String>,
    pub description: Option<String>,
    pub description_localizations: HashMap<String, String>,
    pub required: bool,
    pub channel_types: Option<Vec<ChannelType>>,
    pub choices: Vec<CommandParameterChoice>,
    pub type_setter: Option<fn(CreateCommandOption) -> CreateCommandOption>,
    pub autocomplete_callback: Option<for<'a> fn(ApplicationContext<'a, U, E>, &'a str) -> BoxFuture<'a, Result<CreateAutocompleteResponse, SlashArgError>>>,
    /* private fields */
}
Expand description

A single parameter of a crate::Command

Fields§

§name: String

Name of this command parameter

§name_localizations: HashMap<String, String>

Localized names with locale string as the key (slash-only)

§description: Option<String>

Description of the command. Required for slash commands

§description_localizations: HashMap<String, String>

Localized descriptions with locale string as the key (slash-only)

§required: bool

true is this parameter is required, false if it’s optional or variadic

§channel_types: Option<Vec<ChannelType>>

If this parameter is a channel, users can only enter these channel types in a slash command

Prefix commands are currently unaffected by this

§choices: Vec<CommandParameterChoice>

If this parameter is a choice parameter, this is the fixed list of options

§type_setter: Option<fn(CreateCommandOption) -> CreateCommandOption>

Closure that sets this parameter’s type and min/max value in the given builder

For example a u32 CommandParameter would store this as the Self::type_setter:

|b| b.kind(serenity::CommandOptionType::Integer).min_int_value(0).max_int_value(u64::MAX)
§autocomplete_callback: Option<for<'a> fn(ApplicationContext<'a, U, E>, &'a str) -> BoxFuture<'a, Result<CreateAutocompleteResponse, SlashArgError>>>

Optionally, a callback that is invoked on autocomplete interactions. This closure should extract the partial argument from the given JSON value and generate the autocomplete response which contains the list of autocomplete suggestions.

Implementations§

Source§

impl<U, E> CommandParameter<U, E>

Source

pub fn create_as_slash_command_option(&self) -> Option<CreateCommandOption>

Generates a slash command parameter builder from this CommandParameter instance. This can be used to register the command on Discord’s servers

Trait Implementations§

Source§

impl<U: Clone, E: Clone> Clone for CommandParameter<U, E>

Source§

fn clone(&self) -> CommandParameter<U, E>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<U, E> Debug for CommandParameter<U, E>

Source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<U, E> Freeze for CommandParameter<U, E>

§

impl<U, E> RefUnwindSafe for CommandParameter<U, E>

§

impl<U, E> Send for CommandParameter<U, E>

§

impl<U, E> Sync for CommandParameter<U, E>

§

impl<U, E> Unpin for CommandParameter<U, E>

§

impl<U, E> UnsafeUnpin for CommandParameter<U, E>

§

impl<U, E> UnwindSafe for CommandParameter<U, E>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneDebuggableStorage for T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

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 T
where 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

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

Source§

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
Source§

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,