pub struct Carousel { /* private fields */ }Expand description
Carousel block representation
§Fields and Validations
For more details, see the official documentation.
| Field | Type | Required | Validation |
|---|---|---|---|
| elements | Vec<Card> | Yes | Must contain as least 1 card and at most 10 cards. |
| block_id | String | No | Must be 255 characters or less. |
§Examples
use slack_messaging::{plain_text, mrkdwn};
use slack_messaging::blocks::{Card, Carousel};
use slack_messaging::blocks::elements::{Button, Image};
let carousel = Carousel::builder()
.element(
Card::builder()
.block_id("carousel-card-1")
.icon(
Image::builder()
.image_url("https://picsum.photos/36/36")
.alt_text("Icon")
.build()?
)
.title(mrkdwn!("MDR")?)
.subtitle(mrkdwn!("Refining data files")?)
.hero_image(
Image::builder()
.image_url("https://picsum.photos/400/300")
.alt_text("Sample hero image")
.build()?
)
.body(mrkdwn!("Blue badge required to gain access.")?)
.action(
Button::builder()
.text(plain_text!("Action Button")?)
.action_id("button_action_1")
.build()?
)
.build()?
)
.element(
Card::builder()
.block_id("carousel-card-2")
.icon(
Image::builder()
.image_url("https://picsum.photos/36/36")
.alt_text("Icon")
.build()?
)
.title(mrkdwn!("O&D")?)
.subtitle(mrkdwn!("Storage, maintenance, and rotation of art pieces")?)
.hero_image(
Image::builder()
.image_url("https://picsum.photos/400/300")
.alt_text("Sample hero image")
.build()?
)
.body(mrkdwn!("Green badge required to gain access.")?)
.action(
Button::builder()
.text(plain_text!("Action Button")?)
.action_id("button_action_2")
.build()?
)
.build()?
)
.element(
Card::builder()
.block_id("carousel-card-3")
.icon(
Image::builder()
.image_url("https://picsum.photos/36/36")
.alt_text("Icon")
.build()?
)
.title(mrkdwn!("Wellness Center")?)
.subtitle(mrkdwn!("Wellness sessions")?)
.hero_image(
Image::builder()
.image_url("https://picsum.photos/400/300")
.alt_text("Sample hero image")
.build()?
)
.body(mrkdwn!("Please take a seat in the waiting room until called.")?)
.action(
Button::builder()
.text(plain_text!("Action Button")?)
.action_id("button_action_3")
.build()?
)
.build()?
)
.build()?;
let expected = serde_json::json!({
"type": "carousel",
"elements": [
{
"type": "card",
"block_id": "carousel-card-1",
"icon": {
"type": "image",
"image_url": "https://picsum.photos/36/36",
"alt_text": "Icon"
},
"title": {
"type": "mrkdwn",
"text": "MDR"
},
"subtitle": {
"type": "mrkdwn",
"text": "Refining data files"
},
"hero_image": {
"type": "image",
"image_url": "https://picsum.photos/400/300",
"alt_text": "Sample hero image"
},
"body": {
"type": "mrkdwn",
"text": "Blue badge required to gain access."
},
"actions": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Action Button"
},
"action_id": "button_action_1"
}
]
},
{
"type": "card",
"block_id": "carousel-card-2",
"icon": {
"type": "image",
"image_url": "https://picsum.photos/36/36",
"alt_text": "Icon"
},
"title": {
"type": "mrkdwn",
"text": "O&D"
},
"subtitle": {
"type": "mrkdwn",
"text": "Storage, maintenance, and rotation of art pieces"
},
"hero_image": {
"type": "image",
"image_url": "https://picsum.photos/400/300",
"alt_text": "Sample hero image"
},
"body": {
"type": "mrkdwn",
"text": "Green badge required to gain access."
},
"actions": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Action Button"
},
"action_id": "button_action_2"
}
]
},
{
"type": "card",
"block_id": "carousel-card-3",
"icon": {
"type": "image",
"image_url": "https://picsum.photos/36/36",
"alt_text": "Icon"
},
"title": {
"type": "mrkdwn",
"text": "Wellness Center"
},
"subtitle": {
"type": "mrkdwn",
"text": "Wellness sessions"
},
"hero_image": {
"type": "image",
"image_url": "https://picsum.photos/400/300",
"alt_text": "Sample hero image"
},
"body": {
"type": "mrkdwn",
"text": "Please take a seat in the waiting room until called."
},
"actions": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Action Button"
},
"action_id": "button_action_3"
}
]
}
]
});
let json = serde_json::to_value(carousel).unwrap();
assert_eq!(json, expected);Implementations§
Source§impl Carousel
impl Carousel
Sourcepub fn builder() -> CarouselBuilder
pub fn builder() -> CarouselBuilder
constract CarouselBuilder object.
Trait Implementations§
impl StructuralPartialEq for Carousel
Auto Trait Implementations§
impl Freeze for Carousel
impl RefUnwindSafe for Carousel
impl Send for Carousel
impl Sync for Carousel
impl Unpin for Carousel
impl UnsafeUnpin for Carousel
impl UnwindSafe for Carousel
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