#[derive(serde::Deserialize, typed_builder::TypedBuilder, Clone)]
pub struct SerenityEmbed {
#[builder(default, setter(strip_option, into))]
pub title: Option<String>,
#[builder(default, setter(strip_option, into))]
pub description: Option<String>,
#[builder(default, setter(strip_option, into))]
pub url: Option<String>,
#[builder(default, setter(strip_option, into))]
pub timestamp: Option<serenity::all::Timestamp>,
#[builder(default, setter(strip_option, into))]
pub color: Option<u32>,
#[builder(default, setter(strip_option, into))]
pub footer_text: Option<String>,
#[builder(default, setter(strip_option, into))]
pub footer_icon_url: Option<String>,
#[builder(default, setter(strip_option, into))]
pub image_url: Option<String>,
#[builder(default, setter(strip_option, into))]
pub thumbnail_url: Option<String>,
#[builder(default, setter(strip_option, into))]
pub author_name: Option<String>,
#[builder(default, setter(strip_option, into))]
pub author_url: Option<String>,
#[builder(default, setter(strip_option, into))]
pub author_icon_url: Option<String>,
#[builder(default, setter(strip_option, into))]
pub fields: Option<Vec<SerenityEmbedField>>,
}
#[derive(serde::Deserialize, typed_builder::TypedBuilder, Clone)]
pub struct SerenityEmbedField {
#[builder(setter(into))]
pub name: String,
#[builder(setter(into))]
pub value: String,
#[builder(default = false, setter(into))]
pub inline: bool,
}