twilight_model/channel/message/component/file_display.rs
1use serde::{Deserialize, Serialize};
2
3use super::unfurled_media::UnfurledMediaItem;
4
5/// A component displaying an uploaded file as an attachment.
6///
7/// Files are only available in messages.
8#[derive(Clone, Debug, Eq, Hash, PartialEq, Deserialize, Serialize)]
9pub struct FileDisplay {
10 /// This unfurled media item is unique in that it only supports attachment
11 /// references using the `attachment://<filename>` syntax.
12 pub file: UnfurledMediaItem,
13 /// Optional identifier for the file.
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub id: Option<i32>,
16 /// Whether the media should be a spoiler (or blurred out). Defaults to `false`.
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub spoiler: Option<bool>,
19}