pub struct Opt<'a, T = AnyText, U = NoUrl> { /* private fields */ }Expand description
§Option Object
An object that represents a single selectable item in a
Implementations§
Source§impl<'a> Opt<'a>
impl<'a> Opt<'a>
Sourcepub fn builder() -> OptBuilderInit<'a>
pub fn builder() -> OptBuilderInit<'a>
Build a new option composition object
§Examples
use slack_blocks::{blocks::{Actions, Block},
compose::Opt,
elems::{select::Static, BlockElement},
text};
struct City {
name: String,
short_code: String,
}
impl City {
pub fn new(name: impl ToString, short_code: impl ToString) -> Self {
Self { name: name.to_string(),
short_code: short_code.to_string() }
}
}
let cities = vec![City::new("Seattle", "SEA"),
City::new("Portland", "PDX"),
City::new("Phoenix", "PHX")];
let options =
cities.iter().map(|City { name, short_code }| {
Opt::builder().text_plain(name).value(short_code).build()
});
let select = Static::builder().placeholder("Choose your favorite city!")
.action_id("fave_city")
.options(options)
.build();
let block: Block = Actions::builder().element(select).build().into();Source§impl<'a, T, U> Opt<'a, T, U>
impl<'a, T, U> Opt<'a, T, U>
Sourcepub fn validate(&self) -> Result<(), ValidationErrors>
Available on crate feature validation only.
pub fn validate(&self) -> Result<(), ValidationErrors>
validation only.Validate that this Option composition object agrees with Slack’s model requirements
§Errors
- If
textlonger than 75 chars - If
valuelonger than 75 chars - If
urllonger than 3000 chars - If
descriptionlonger than 75 chars
§Example
use std::iter::repeat;
use slack_blocks::compose::Opt;
let long_string: String = repeat(' ').take(76).collect();
let opt = Opt::builder().text_plain("My Option")
.value(long_string)
.build();
assert_eq!(true, matches!(opt.validate(), Err(_)));Trait Implementations§
Source§impl<'a, Multi, Placeholder, ActionId> AppendOptOrOptGroup<'a, Multi, Placeholder, ActionId> for Opt<'a, Plain, NoUrl>
Available on crate feature blox only.
impl<'a, Multi, Placeholder, ActionId> AppendOptOrOptGroup<'a, Multi, Placeholder, ActionId> for Opt<'a, Plain, NoUrl>
Available on crate feature
blox only.Source§impl<'de, 'a, T, U> Deserialize<'de> for Opt<'a, T, U>
impl<'de, 'a, T, U> Deserialize<'de> for Opt<'a, T, U>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'a, T, U> From<Opt<'a, T, U>> for OptOrOptGroup<'a, T, U>
impl<'a, T, U> From<Opt<'a, T, U>> for OptOrOptGroup<'a, T, U>
impl<'a, T, U> StructuralPartialEq for Opt<'a, T, U>
Auto Trait Implementations§
impl<'a, T, U> Freeze for Opt<'a, T, U>
impl<'a, T, U> RefUnwindSafe for Opt<'a, T, U>where
T: RefUnwindSafe,
U: RefUnwindSafe,
impl<'a, T, U> Send for Opt<'a, T, U>
impl<'a, T, U> Sync for Opt<'a, T, U>
impl<'a, T, U> Unpin for Opt<'a, T, U>
impl<'a, T, U> UnwindSafe for Opt<'a, T, U>where
T: UnwindSafe,
U: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more