Struct slack_messaging::blocks::elements::OptGroup
source · pub struct OptGroup { /* private fields */ }Expand description
Option group object representation.
Example
use slack_messaging::blocks::elements::{OptGroup, Opt};
use serde_json::json;
let options = OptGroup::new()
.label("Group One")
.push_option(
Opt::plain("This is a plain text.").set_value("value-0")
)
.push_option(
Opt::mrkdwn("*This is a mrkdwn text.*").set_value("value-1")
);
let expected = json!({
"label": {
"type": "plain_text",
"text": "Group One",
"emoji": true
},
"options": [
{
"text": {
"type": "plain_text",
"text": "This is a plain text.",
"emoji": true
},
"value": "value-0"
},
{
"text": {
"type": "mrkdwn",
"text": "*This is a mrkdwn text.*"
},
"value": "value-1"
},
]
});
let options_json = serde_json::to_value(options).unwrap();
assert_eq!(options_json, expected);Implementations§
source§impl OptGroup
impl OptGroup
sourcepub fn new() -> Self
pub fn new() -> Self
Constructs a Option group object with empty values.
use slack_messaging::blocks::elements::OptGroup;
use serde_json::json;
let options = OptGroup::new();
let expected = json!({
"label": {
"type": "plain_text",
"text": "",
"emoji": true
},
"options": []
});
let options_json = serde_json::to_value(options).unwrap();
assert_eq!(options_json, expected);sourcepub fn set_label(self, label: Text) -> Self
pub fn set_label(self, label: Text) -> Self
Sets label field with Text object.
use slack_messaging::blocks::elements::{OptGroup, Text};
use serde_json::json;
let options = OptGroup::new().set_label(Text::plain("Group One"));
let expected = json!({
"label": {
"type": "plain_text",
"text": "Group One",
"emoji": true
},
"options": []
});
let options_json = serde_json::to_value(options).unwrap();
assert_eq!(options_json, expected);sourcepub fn label<T: Into<String>>(self, label: T) -> Self
pub fn label<T: Into<String>>(self, label: T) -> Self
Sets label field with string. This is a shorthand for set_label method.
use slack_messaging::blocks::elements::OptGroup;
use serde_json::json;
let options = OptGroup::new().label("Group One");
let expected = json!({
"label": {
"type": "plain_text",
"text": "Group One",
"emoji": true
},
"options": []
});
let options_json = serde_json::to_value(options).unwrap();
assert_eq!(options_json, expected);sourcepub fn set_options(self, options: Vec<Opt>) -> Self
pub fn set_options(self, options: Vec<Opt>) -> Self
Sets options field directly.
use slack_messaging::blocks::elements::{OptGroup, Opt};
use serde_json::json;
let options = OptGroup::new()
.set_options(
vec![
Opt::plain("This is a plain text.").set_value("value-0"),
Opt::mrkdwn("*This is a mrkdwn text.*").set_value("value-1"),
]
);
let expected = json!({
"label": {
"type": "plain_text",
"text": "",
"emoji": true
},
"options": [
{
"text": {
"type": "plain_text",
"text": "This is a plain text.",
"emoji": true
},
"value": "value-0"
},
{
"text": {
"type": "mrkdwn",
"text": "*This is a mrkdwn text.*"
},
"value": "value-1"
}
]
});
let options_json = serde_json::to_value(options).unwrap();
assert_eq!(options_json, expected);sourcepub fn push_option(self, option: Opt) -> Self
pub fn push_option(self, option: Opt) -> Self
Adds Option object to options field.
use slack_messaging::blocks::elements::{OptGroup, Opt};
use serde_json::json;
let options = OptGroup::new()
.push_option(Opt::plain("This is a plain text.").set_value("value-0"));
let expected = json!({
"label": {
"type": "plain_text",
"text": "",
"emoji": true
},
"options": [
{
"text": {
"type": "plain_text",
"text": "This is a plain text.",
"emoji": true
},
"value": "value-0"
}
]
});
let options_json = serde_json::to_value(options).unwrap();
assert_eq!(options_json, expected);