Skip to main content

OptGroup

Struct OptGroup 

Source
pub struct OptGroup<T = PlainText>
where T: TextExt,
{ /* private fields */ }
Expand description

Option group object representation.

This is a generic struct that can represent an option group object with different text object types.

§Type Parameters

  • T: The type of text object used for the text field of the Opt objects in the options field. Defaults to PlainText. Must implement the TextExt trait.

§Fields and Validations

For more details, see the official documentation.

FieldTypeRequiredValidation
label[Text]<[Plain]>YesMax length 75 characters
optionsVec<Opt<T>>YesMust contain at most 100 items

§Example

use slack_messaging::plain_text;
use slack_messaging::composition_objects::{OptGroup, Opt, PlainText};

let options: OptGroup = OptGroup::builder()
    .label(plain_text!("Group One")?)
    .option(
        Opt::builder()
            .text(plain_text!("option-0")?)
            .value("value-0")
            .build()?
    )
    .option(
        Opt::builder()
            .text(plain_text!("option-1")?)
            .value("value-1")
            .build()?
    )
    .build()?;

let expected = serde_json::json!({
    "label": {
        "type": "plain_text",
        "text": "Group One"
    },
    "options": [
        {
            "text": {
                "type": "plain_text",
                "text": "option-0",
            },
            "value": "value-0"
        },
        {
            "text": {
                "type": "plain_text",
                "text": "option-1"
            },
            "value": "value-1"
        },
    ]
});

let json = serde_json::to_value(options).unwrap();

assert_eq!(json, expected);

// If your object has any validation errors, the build method returns Result::Err
let options = OptGroup::<PlainText>::builder()
    .label(plain_text!("Group One")?)
    .build();

assert!(options.is_err());

Implementations§

Source§

impl<T> OptGroup<T>
where T: TextExt,

Source

pub fn builder() -> OptGroupBuilder<T>

constract OptGroupBuilder object.

Trait Implementations§

Source§

impl<T> Clone for OptGroup<T>
where T: TextExt + Clone,

Source§

fn clone(&self) -> OptGroup<T>

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<T> Debug for OptGroup<T>
where T: TextExt + Debug,

Source§

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

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

impl<T> PartialEq for OptGroup<T>
where T: TextExt + PartialEq,

Source§

fn eq(&self, other: &OptGroup<T>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<T> Serialize for OptGroup<T>
where T: TextExt + Serialize,

Source§

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

Serialize this value into the given Serde serializer. Read more
Source§

impl<T> StructuralPartialEq for OptGroup<T>
where T: TextExt + PartialEq,

Auto Trait Implementations§

§

impl<T> Freeze for OptGroup<T>

§

impl<T> RefUnwindSafe for OptGroup<T>
where T: RefUnwindSafe,

§

impl<T> Send for OptGroup<T>
where T: Send,

§

impl<T> Sync for OptGroup<T>
where T: Sync,

§

impl<T> Unpin for OptGroup<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for OptGroup<T>

§

impl<T> UnwindSafe for OptGroup<T>
where T: UnwindSafe,

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.