pub struct SerenityEmbed {Show 13 fields
pub title: Option<String>,
pub description: Option<String>,
pub url: Option<String>,
pub timestamp: Option<Timestamp>,
pub color: Option<u32>,
pub footer_text: Option<String>,
pub footer_icon_url: Option<String>,
pub image_url: Option<String>,
pub thumbnail_url: Option<String>,
pub author_name: Option<String>,
pub author_url: Option<String>,
pub author_icon_url: Option<String>,
pub fields: Option<Vec<SerenityEmbedField>>,
}Expand description
A builder for creating Discord embeds. This struct allows you to build rich embed messages for Discord using a fluent interface.
Fundamentally, this structure provides the same functionality as Serenity, but this library explicitly removes values that became unnecessary during optimization as a builder.
§Structure Values
In Serenity, embeddings are composed of multiple structures such as serenity::builder::CreateEmbedAuthor.
serenity-builder represents these structures as Triples or Doubles. Please refer to the documentation to determine which values correspond to them.
§Values
The following values have been removed from serenity::model::channel::Embed:
kind: The type of embed. Discord currently only supports “rich” embeds, so this field is unnecessary.video:richembeds do not support video content, so this field is unnecessary.provider:richembeds do not support provider information, so this field is unnecessary.
Fields§
§title: Option<String>The title of the embed.
description: Option<String>The description of the embed.
Due to Discord API limitations, a maximum of 4096 characters can be used. If the character count exceeds this limit, crate::embed::SerenityEmbedConvertError::TooLongDescription will be returned during conversion.
url: Option<String>§timestamp: Option<Timestamp>The timestamp of the embed content. It will be displayed at the bottom of the embed.
color: Option<u32>The color of the embed.
Serenity uses serenity::model::colour::Colour, but Builder only allows direct specification from color codes.
e.g. 0xff0000 for red.
The footer of the embed.
The footer icon url of the embed.
image_url: Option<String>The image url of the embed.
thumbnail_url: Option<String>The thumbnail url of the embed.
The author name of the embed.
The author url of the embed.
The author icon url of the embed.
fields: Option<Vec<SerenityEmbedField>>The fields of the embed. (up to 25 fields)
Due to Discord API limitations, only 25 fields can be used. Any additional fields will result in a crate::embed::SerenityEmbedConvertError::TooManyFields being returned during conversion.
Implementations§
Source§impl SerenityEmbed
impl SerenityEmbed
Sourcepub fn convert(&self) -> Result<CreateEmbed, SerenityEmbedConvertError>
pub fn convert(&self) -> Result<CreateEmbed, SerenityEmbedConvertError>
Convert the embedded structure created in Builder into a model usable in Serenity.
let embed = SerenityEmbed::builder()
.title("This is a test title.")
/// ... other fields ...
.build();
let serenity_embed = embed.convert()?; // Result<CreateEmbed, SerenityEmbedConvertError>§How to use
// 1. Create a SerenityEmbed using the builder
let embed = SerenityEmbed::builder()
.title("This is a test title.")
.description("This is a test description.")
.build(); // Don't forget!: If you forget this, you won't be able to use `convert()`.
// 2. Convert to Serenity's CreateEmbed
let serenity_embed = embed.convert()?; // Result<CreateEmbed, SerenityEmbedConvertError>
// 3. Use the converted embed in your Serenity message
let message = serenity::builder::CreateMessage::default()
.content("Here is an embed!")
// ... other message fields ...§Errors
This function may return the following error:
SerenityEmbedConvertError::TooLongDescription: The description exceeds the maximum length of 4096 characters.SerenityEmbedConvertError::TooManyFields: The number of fields exceeds the maximum of 25.
Source§impl SerenityEmbed
impl SerenityEmbed
Sourcepub fn builder() -> SerenityEmbedBuilder<((), (), (), (), (), (), (), (), (), (), (), (), ())>
pub fn builder() -> SerenityEmbedBuilder<((), (), (), (), (), (), (), (), (), (), (), (), ())>
Create a builder for building SerenityEmbed.
On the builder, call .title(...)(optional), .description(...)(optional), .url(...)(optional), .timestamp(...)(optional), .color(...)(optional), .footer_text(...)(optional), .footer_icon_url(...)(optional), .image_url(...)(optional), .thumbnail_url(...)(optional), .author_name(...)(optional), .author_url(...)(optional), .author_icon_url(...)(optional), .fields(...)(optional) to set the values of the fields.
Finally, call .build() to create the instance of SerenityEmbed.
Trait Implementations§
Source§impl Clone for SerenityEmbed
impl Clone for SerenityEmbed
Source§fn clone(&self) -> SerenityEmbed
fn clone(&self) -> SerenityEmbed
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more