pub struct Attachment {
pub title: Option<String>,
pub description: Option<String>,
pub file: Vec<u8>,
pub filename: String,
pub id: u64,
pub duration_secs: Option<f64>,
pub waveform: Option<String>,
pub is_spoiler: Option<bool>,
}Expand description
Attachments used in messages.
§Examples
Create an attachment of a short JSON blob describing a cat with a description for screen readers:
use twilight_model::http::attachment::Attachment;
let filename = "twilight_sparkle.json".to_owned();
let file_content = br#"{
"best_friend": "Spike",
"cutie_mark": "sparkles",
"name": "Twilight Sparkle"
}"#
.to_vec();
let id = 1;
let mut attachment = Attachment::from_bytes(filename, file_content, id);
attachment.description("Raw data about Twilight Sparkle".to_owned());Fields§
§title: Option<String>Title of the file.
description: Option<String>Description of the attachment, useful for screen readers and users requiring alt text.
file: Vec<u8>Content of the file.
filename: StringName of the file.
Examples may be twilight_sparkle.png, cat.jpg, or logs.txt.
id: u64Unique ID of the attachment in the message.
While attachment IDs can be the same as attachments in other messages, they must be unique within the same message. Attachment IDs don’t need to be in any particular format; for example, IDs of 0, 100, the current timestamp, and so on are all valid.
duration_secs: Option<f64>Duration of the audio or video file.
Required for voice messages.
waveform: Option<String>Base64 encoded bytearray representing a sampled waveform.
Required for voice messages.
is_spoiler: Option<bool>Whether the attachment should be marked as a spoiler and blurred until clicked.
This sets the IS_SPOILER attachment flag.
Implementations§
Source§impl Attachment
impl Attachment
Sourcepub const fn from_bytes(filename: String, file: Vec<u8>, id: u64) -> Self
pub const fn from_bytes(filename: String, file: Vec<u8>, id: u64) -> Self
Create an attachment from a filename and bytes.
§Examples
Create an attachment with a grocery list named “grocerylist.txt”:
use twilight_model::http::attachment::Attachment;
let filename = "grocerylist.txt".to_owned();
let file_content = b"Apples\nGrapes\nLemonade".to_vec();
let id = 1;
let attachment = Attachment::from_bytes(filename, file_content, id);Sourcepub fn description(&mut self, description: String)
pub fn description(&mut self, description: String)
Set the description of the attachment.
Attachment descriptions are useful for those requiring screen readers and are displayed as alt text.
Trait Implementations§
Source§impl Clone for Attachment
impl Clone for Attachment
Source§fn clone(&self) -> Attachment
fn clone(&self) -> Attachment
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more