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 /// Optional identifier for the file.
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub id: Option<i32>,
13 /// This unfurled media item is unique in that it only supports attachment
14 /// references using the `attachment://<filename>` syntax.
15 pub file: UnfurledMediaItem,
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}