diff options
| author | acdenisSK <[email protected]> | 2017-07-11 18:06:21 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-07-11 18:06:21 +0200 |
| commit | dbd672783ef6f647664d3b1aa97957af9321d55c (patch) | |
| tree | b62d2c116811a46609fdaaf2bc3c026e8075e3e7 /src/builder/create_embed.rs | |
| parent | Rename `online_members` to `members_with_status` and compare the status provi... (diff) | |
| download | serenity-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.rs | 20 |
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 |