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 Command
s or
SubCommand
s.
This trait is implemented already for most primitive types.
Required Associated Types§
Sourcetype Partial: BasicOption
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§
Sourcefn create_option(
name: impl Into<String>,
description: impl Into<String>,
) -> CreateCommandOption
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
Create the command option.
Sourcefn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
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
impl BasicOption for bool
type Partial = bool
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for char
impl BasicOption for char
type Partial = String
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for f32
impl BasicOption for f32
type Partial = f32
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for f64
impl BasicOption for f64
type Partial = f64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for i8
impl BasicOption for i8
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for i16
impl BasicOption for i16
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for i32
impl BasicOption for i32
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for i64
impl BasicOption for i64
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for i128
impl BasicOption for i128
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for isize
impl BasicOption for isize
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for u8
impl BasicOption for u8
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for u16
impl BasicOption for u16
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for u32
impl BasicOption for u32
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for u64
impl BasicOption for u64
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for u128
impl BasicOption for u128
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for usize
impl BasicOption for usize
type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for String
impl BasicOption for String
type Partial = String
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for AttachmentId
impl BasicOption for AttachmentId
type Partial = AttachmentId
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for ChannelId
impl BasicOption for ChannelId
type Partial = ChannelId
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for GenericId
impl BasicOption for GenericId
type Partial = GenericId
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for RoleId
impl BasicOption for RoleId
type Partial = RoleId
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for UserId
impl BasicOption for UserId
type Partial = UserId
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl BasicOption for OffsetDateTime
Available on crate feature time
only.
impl BasicOption for OffsetDateTime
time
only.type Partial = i64
fn create_option( name: impl Into<String>, description: impl Into<String>, ) -> CreateCommandOption
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Source§impl<T: BasicOption> BasicOption for Option<T>
impl<T: BasicOption> BasicOption for Option<T>
Source§type Partial = <T as BasicOption>::Partial
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
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>
fn from_value(value: Option<&CommandDataOptionValue>) -> Result<Self>
Only delegates to T
’s BasicOption::from_value
implementation if
value
is Some
.