Struct slack_blocks::compose::opt_group::OptGroup [−][src]
pub struct OptGroup<M = ()> { /* fields omitted */ }
Expand description
Option Group
Provides a way to group options in a select menu 🔗 or multi-select menu 🔗.
Implementations
impl OptGroup<()>[src]
impl OptGroup<()>[src]pub fn from_label_and_opts<M>(
label: impl Into<Plain>,
options: impl IntoIterator<Item = Opt<M>>
) -> OptGroup<M>[src]
pub fn from_label_and_opts<M>(
label: impl Into<Plain>,
options: impl IntoIterator<Item = Opt<M>>
) -> OptGroup<M>[src]Construct an Option Group from a label and collection of options in the group
Arguments
label- Aplain_textonly text object 🔗 that defines the label shown above this group of options. Maximum length for thetextin this field is 75 characters.opts- An array of option objects 🔗 that belong to this specific group. Maximum of 100 items.
Example
use slack_blocks::blocks::Block; use slack_blocks::blocks::section::Contents as Section; use slack_blocks::blocks::actions::Contents as Actions; use slack_blocks::text::{Mrkdwn}; use slack_blocks::compose::{OptGroup, Opt}; let prompt = "Choose your favorite city from each state!"; let blocks: Vec<Block> = vec![ Section::from_text(Mrkdwn::from(prompt)).into(), // TODO: insert option group once block elements are in place Actions::from_action_elements(vec![]).into(), ]; let groups: Vec<OptGroup<_>> = vec![ OptGroup::from_label_and_opts( "Arizona", vec![ Opt::from_mrkdwn_and_value("Phoenix", "az_phx"), // etc... ] ), OptGroup::from_label_and_opts( "California", vec![ Opt::from_mrkdwn_and_value("San Diego", "ca_sd"), // etc... ] ), ];
impl<M> OptGroup<M>[src]
impl<M> OptGroup<M>[src]pub fn validate(&self) -> Result<(), ValidationErrors>[src]
pub fn validate(&self) -> Result<(), ValidationErrors>[src]Validate that this Option Group object agrees with Slack’s model requirements
Errors
- If
from_label_and_optswas called withlabellonger than 75 chars - If
from_label_and_optswas called with more than 100 options
Example
use slack_blocks::compose::{OptGroup, Opt}; use std::iter::repeat; let long_string: String = repeat(' ').take(76).collect(); let opt = Opt::from_mrkdwn_and_value("San Diego", "ca_sd"); let grp = OptGroup::from_label_and_opts(long_string, vec![opt]); assert_eq!(true, matches!(grp.validate(), Err(_)));
Trait Implementations
impl<'de, M> Deserialize<'de> for OptGroup<M> where
M: Deserialize<'de>, [src]
impl<'de, M> Deserialize<'de> for OptGroup<M> where
M: Deserialize<'de>, [src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]Deserialize this value from the given Serde deserializer. Read more
impl<M> From<OptGroup<M>> for OptOrOptGroup<M>[src]
impl<M> From<OptGroup<M>> for OptOrOptGroup<M>[src]impl<M> StructuralPartialEq for OptGroup<M>[src]
Auto Trait Implementations
impl<M> RefUnwindSafe for OptGroup<M> where
M: RefUnwindSafe,
M: RefUnwindSafe,
impl<M> Send for OptGroup<M> where
M: Send,
M: Send,
impl<M> Sync for OptGroup<M> where
M: Sync,
M: Sync,
impl<M> Unpin for OptGroup<M> where
M: Unpin,
M: Unpin,
impl<M> UnwindSafe for OptGroup<M> where
M: UnwindSafe,
M: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>, [src]
T: for<'de> Deserialize<'de>,