Trait BasicOption

Source
pub trait BasicOption: Sized {
    type Partial: BasicOption;

    // Required methods
    fn create_option(
        name: impl Into<String>,
        description: impl Into<String>,
    ) -> CreateCommandOption;
    fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>;
}
Expand description

A basic option which can be nested inside of Commands or SubCommands.

This trait is implemented already for most primitive types.

Required Associated Types§

Source

type Partial: BasicOption

The type of this option when it may not be fully parseable.

This will usually occur when this field is part of an autocomplete interaction. This will usually be String or an integer type, and is present so an autocomplete interaction can still be handled if a field is not yet parseable to the type of the option.

As this should be a type that can reliably be parsed from a CommandDataOptionValue, it’s BasicOption::from_value implementation should ideally be infallible.

Required Methods§

Source

fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption

Create the command option.

Source

fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>

Extract data from a CommandDataOptionValue.

§Errors

Returns an error if the implementation fails.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl BasicOption for bool

Source§

impl BasicOption for char

Source§

impl BasicOption for f32

Source§

impl BasicOption for f64

Source§

impl BasicOption for i8

Source§

impl BasicOption for i16

Source§

impl BasicOption for i32

Source§

impl BasicOption for i64

Source§

impl BasicOption for i128

Source§

impl BasicOption for isize

Source§

impl BasicOption for u8

Source§

impl BasicOption for u16

Source§

impl BasicOption for u32

Source§

impl BasicOption for u64

Source§

impl BasicOption for u128

Source§

impl BasicOption for usize

Source§

impl BasicOption for String

Source§

impl BasicOption for AttachmentId

Source§

impl BasicOption for ChannelId

Source§

impl BasicOption for GenericId

Source§

impl BasicOption for RoleId

Source§

impl BasicOption for UserId

Source§

impl BasicOption for OffsetDateTime

Available on crate feature time only.
Source§

impl<T: BasicOption> BasicOption for Option<T>

Source§

type Partial = <T as BasicOption>::Partial

Delegates to T’s BasicOption::Partial type.

Source§

fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption

Delegates to T’s BasicOption::create_option implementation, but sets CreateCommandOption::required to false afterwards.

Source§

fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>

Only delegates to T’s BasicOption::from_value implementation if value is Some.

Implementors§