twilight_model/channel/message/component/
media_gallery.rs

1use serde::{Deserialize, Serialize};
2
3use super::unfurled_media::UnfurledMediaItem;
4
5/// Component used to organize a set of [`MediaGalleryItem`]s.
6#[derive(Clone, Debug, Eq, Hash, PartialEq, Deserialize, Serialize)]
7pub struct MediaGallery {
8    /// Optional identifier for the media gallery.
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub id: Option<i32>,
11    /// 1 to 10 media gallery items.
12    pub items: Vec<MediaGalleryItem>,
13}
14
15/// A media gallery item.
16#[derive(Clone, Debug, Eq, Hash, PartialEq, Deserialize, Serialize)]
17pub struct MediaGalleryItem {
18    /// An unfurled media item containing a url or attachment.
19    pub media: UnfurledMediaItem,
20    /// Alt text for the media gallery item.
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub description: Option<String>,
23    /// Whether the media should be a spoiler (or blurred out). Defaults to `false`.
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub spoiler: Option<bool>,
26}