use serde::Serialize;
#[derive(Serialize, Debug, Clone, Default)]
pub struct Field {
name: String,
value: String,
inline: bool
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Footer {
text: Option<String>,
icon_url: Option<String>
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Image {
url: String,
height: Option<u32>,
width: Option<u32>
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Thumbnail {
url: String,
height: Option<u32>,
width: Option<u32>
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Video {
url: String,
height: Option<u32>,
width: Option<u32>
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Provider {
name: Option<String>,
url: Option<String>
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Author {
name: String,
url: Option<String>,
icon_url: Option<String>
}
#[derive(Serialize, Debug, Clone, Default)]
pub struct Embed {
pub title: String,
pub description: Option<String>,
pub fields: Vec<Field>,
pub timestamp: Option<bool>,
pub color: Option<u32>,
pub footer: Option<Footer>,
pub image: Option<Image>,
pub thumbnail: Option<Thumbnail>,
pub video: Option<Video>,
pub provider: Option<Provider>,
pub author: Option<Author>,
}
pub struct WebhookClient {
pub client: reqwest::Client,
pub hook_url: String,
pub avatar_url: Option<String>,
pub username: Option<String>,
pub embeds: Vec<Embed>,
}