Skip to main content

AddonChoices

Struct AddonChoices 

Source
pub struct AddonChoices {
    pub id: &'static str,
    pub name: &'static str,
    pub live: bool,
    pub values: &'static [AddonChoice],
}
Expand description

A named list of options an addon offers, which a parameter can draw from.

ADR-0022. Named rather than attached to one parameter, and the third reason below is the one that decided it:

  • a live fetch is then one addon and one id, where a parameter would need (addon, action, param) — and a setting’s parameter has no action;
  • two parameters can share one list, so a pin and a priority pointing at the same people cannot show two different rosters;
  • composition belongs to the addon. 006-FR-011b wants the current call, then people remembered from previous calls, then free text — an ordering that is Discord’s business. With a named source the addon returns one flat ordered list and the interface renders it, so “remembered people” needs no interface support at all.

Fields§

§id: &'static str

Stable id, unique within the addon. A parameter names this.

§name: &'static str

What the list is, for the editor’s heading and its empty state.

§live: bool

Whether the values must be asked for rather than read from below.

A declared source is fixed for the life of the daemon and arrives with everything else. A live one changes — a voice roster, the playlists on an account — and is fetched when somebody opens the picker and at no other time. Not polled: a timer would cost idle CPU for a picker nobody has open, which 006-FR-027 forbids and 006-SC-008 measures.

§values: &'static [AddonChoice]

Every value, for a declared source. Empty when Self::live.

Trait Implementations§

Source§

impl Clone for AddonChoices

Source§

fn clone(&self) -> AddonChoices

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AddonChoices

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for AddonChoices

Source§

fn eq(&self, other: &AddonChoices) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for AddonChoices

Source§

impl Eq for AddonChoices

Source§

impl StructuralPartialEq for AddonChoices

Auto Trait Implementations§

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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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