aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-11-21 18:49:36 -0800
committerAustin Hellyer <[email protected]>2016-11-21 18:51:35 -0800
commitdd86e989beb1d4fccbc661de3df79569b6a43fa1 (patch)
tree91f1739190de2348a99e7329190afea0aa1db5f1 /src/utils
parentDon't block entirely on HTTP requests (diff)
downloadserenity-dd86e989beb1d4fccbc661de3df79569b6a43fa1.tar.xz
serenity-dd86e989beb1d4fccbc661de3df79569b6a43fa1.zip
Add support for creating embed images
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/builder/create_embed.rs48
-rw-r--r--src/utils/builder/mod.rs1
2 files changed, 49 insertions, 0 deletions
diff --git a/src/utils/builder/create_embed.rs b/src/utils/builder/create_embed.rs
index fe15ed4..57942bd 100644
--- a/src/utils/builder/create_embed.rs
+++ b/src/utils/builder/create_embed.rs
@@ -122,6 +122,21 @@ impl CreateEmbed {
CreateEmbed(self.0)
}
+ /// Set the image associated with the embed.
+ ///
+ /// Refer to the documentation for [`CreateEmbedImage`] for more
+ /// information.
+ ///
+ /// [`CreateEmbedImage`]: struct.CreateEmbedImage.html
+ pub fn image<F>(mut self, f: F) -> Self
+ where F: FnOnce(CreateEmbedImage) -> CreateEmbedImage {
+ let image = f(CreateEmbedImage::default()).0.build();
+
+ self.0.insert("thumbnail".to_owned(), image);
+
+ CreateEmbed(self.0)
+ }
+
/// Set the thumbnail of the embed.
///
/// Refer to the documentation for [`CreateEmbedThumbnail`] for more
@@ -266,6 +281,39 @@ impl Default for CreateEmbedFooter {
}
}
+/// A builder to create a fake [`Embed`] object's image, for use with the
+/// [`CreateEmbed::image`] method.
+///
+/// This does not require any field be set.
+///
+/// [`Embed`]: ../../model/struct.Embed.html
+/// [`CreateEmbed::image`]: struct.CreateEmbed.html#method.image
+pub struct CreateEmbedImage(pub ObjectBuilder);
+
+impl CreateEmbedImage {
+ /// Set the display height of the image.
+ pub fn height(self, height: u64) -> Self {
+ CreateEmbedImage(self.0.insert("height", height))
+ }
+
+ /// Set the image's URL. This only supports HTTP(S).
+ pub fn url(self, url: &str) -> Self {
+ CreateEmbedImage(self.0.insert("url", url))
+ }
+
+ /// Set the display width of the image.
+ pub fn width(self, width: u64) -> Self {
+ CreateEmbedImage(self.0.insert("widht", width))
+ }
+}
+
+impl Default for CreateEmbedImage {
+ /// Creates a builder with no default values.
+ fn default() -> CreateEmbedImage {
+ CreateEmbedImage(ObjectBuilder::new())
+ }
+}
+
/// A builder to create a fake [`Embed`] object's thumbnail, for use with the
/// [`CreateEmbed::thumbnail`] method.
///
diff --git a/src/utils/builder/mod.rs b/src/utils/builder/mod.rs
index d4da891..76a9c8a 100644
--- a/src/utils/builder/mod.rs
+++ b/src/utils/builder/mod.rs
@@ -20,6 +20,7 @@ pub use self::create_embed::{
CreateEmbed,
CreateEmbedAuthor,
CreateEmbedField,
+ CreateEmbedImage,
CreateEmbedThumbnail,
CreateEmbedVideo,
};