pub struct Static<'a> { /* private fields */ }Expand description
§Select menu with static options
This is the simplest form of select menu, with a static list of options passed in when defining the element.
Implementations§
Source§impl<'a> Static<'a>
impl<'a> Static<'a>
Sourcepub fn builder() -> StaticBuilderInit<'a>
pub fn builder() -> StaticBuilderInit<'a>
Build a new static select element
§Examples
use std::convert::TryFrom;
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();Sourcepub fn validate(&self) -> Result<(), ValidationErrors>
Available on crate feature validation only.
pub fn validate(&self) -> Result<(), ValidationErrors>
validation only.Validate that this select element agrees with Slack’s model requirements
§Errors
- If
from_placeholder_and_action_idwas called withplaceholderlonger than 150 chars - If
from_placeholder_and_action_idwas called withaction_idlonger than 255 chars
§Example
use slack_blocks::elems::select;
let placeholder = r#"Hey I really would appreciate it if you chose
a channel relatively soon, so that we can figure out
where we need to send this poll, ok? it's kind of
important that you specify where this poll should be
sent, in case we haven't made that super clear.
If you understand, could you pick a channel, already??"#;
let select = select::Static::builder().placeholder(placeholder)
.action_id("abc123")
.options(std::iter::empty())
.build();
assert!(matches!(select.validate(), Err(_)))Trait Implementations§
Source§impl<'de, 'a> Deserialize<'de> for Static<'a>
impl<'de, 'a> Deserialize<'de> for Static<'a>
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> From<Static<'a>> for BlockElement<'a>
impl<'a> From<Static<'a>> for BlockElement<'a>
Source§impl<'a> From<Static<'a>> for SupportedElement<'a>
impl<'a> From<Static<'a>> for SupportedElement<'a>
Source§impl<'a> From<Static<'a>> for SupportedElement<'a>
impl<'a> From<Static<'a>> for SupportedElement<'a>
impl<'a> StructuralPartialEq for Static<'a>
Auto Trait Implementations§
impl<'a> Freeze for Static<'a>
impl<'a> RefUnwindSafe for Static<'a>
impl<'a> Send for Static<'a>
impl<'a> Sync for Static<'a>
impl<'a> Unpin for Static<'a>
impl<'a> UnwindSafe for Static<'a>
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