aboutsummaryrefslogtreecommitdiff
path: root/src/builder/create_embed.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-07-11 18:06:21 +0200
committeracdenisSK <[email protected]>2017-07-11 18:06:21 +0200
commitdbd672783ef6f647664d3b1aa97957af9321d55c (patch)
treeb62d2c116811a46609fdaaf2bc3c026e8075e3e7 /src/builder/create_embed.rs
parentRename `online_members` to `members_with_status` and compare the status provi... (diff)
downloadserenity-dbd672783ef6f647664d3b1aa97957af9321d55c.tar.xz
serenity-dbd672783ef6f647664d3b1aa97957af9321d55c.zip
Add a way to add multiple fields at once
Diffstat (limited to 'src/builder/create_embed.rs')
-rw-r--r--src/builder/create_embed.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/builder/create_embed.rs b/src/builder/create_embed.rs
index 6d1d384..da196ec 100644
--- a/src/builder/create_embed.rs
+++ b/src/builder/create_embed.rs
@@ -139,6 +139,26 @@ impl CreateEmbed {
CreateEmbed(self.0)
}
+ /// Adds multiple fields at once.
+ pub fn fields(mut self, fields: Vec<CreateEmbedField>) -> Self {
+ let fields = fields.into_iter().map(|m| Value::Object(m.0)).collect::<Vec<Value>>();
+
+ {
+ let key = "fields".to_owned();
+
+ let entry = self.0.remove(&key).unwrap_or_else(|| Value::Array(vec![]));
+ let mut arr = match entry {
+ Value::Array(inner) => inner,
+ _ => return CreateEmbed(self.0),
+ };
+ arr.extend(fields);
+
+ self.0.insert("fields".to_owned(), Value::Array(arr));
+ }
+
+ CreateEmbed(self.0)
+ }
+
/// Set the footer of the embed.
///
/// Refer to the documentation for [`CreateEmbedFooter`] for more