aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-10-16 14:39:57 +0200
committeracdenisSK <[email protected]>2017-10-16 14:40:10 +0200
commitc7aa27dbb64e64d70c7f13725c79017c4bba1c95 (patch)
tree616900c9194b5ec40abd6314239fec201ec3e2df /src
parentUpdate 0.4.2's Cargo.toml version to 0.4.2 itself (#196) (diff)
downloadserenity-c7aa27dbb64e64d70c7f13725c79017c4bba1c95.tar.xz
serenity-c7aa27dbb64e64d70c7f13725c79017c4bba1c95.zip
defer to `delete_message` if there's just one message to delete
Diffstat (limited to 'src')
-rw-r--r--src/model/channel/channel_id.rs10
-rw-r--r--src/model/channel/guild_channel.rs2
2 files changed, 8 insertions, 4 deletions
diff --git a/src/model/channel/channel_id.rs b/src/model/channel/channel_id.rs
index f728191..2e415dc 100644
--- a/src/model/channel/channel_id.rs
+++ b/src/model/channel/channel_id.rs
@@ -122,10 +122,14 @@ impl ChannelId {
.into_iter()
.map(|message_id| message_id.as_ref().0)
.collect::<Vec<u64>>();
+
+ if ids.len() == 1 {
+ self.delete_message(ids[0])
+ } else {
+ let map = json!({ "messages": ids });
- let map = json!({ "messages": ids });
-
- http::delete_messages(self.0, &map)
+ http::delete_messages(self.0, &map)
+ }
}
/// Deletes all permission overrides in the channel from a member or role.
diff --git a/src/model/channel/guild_channel.rs b/src/model/channel/guild_channel.rs
index e2e5f09..d6649b4 100644
--- a/src/model/channel/guild_channel.rs
+++ b/src/model/channel/guild_channel.rs
@@ -258,7 +258,7 @@ impl GuildChannel {
/// [`Channel::delete_messages`]: enum.Channel.html#method.delete_messages
/// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html
#[inline]
- pub fn delete_messages<'a, It: IntoIterator<Item=&'a MessageId>>(&self, message_ids: It) -> Result<()> {
+ pub fn delete_messages<T: AsRef<MessageId>, It: IntoIterator<Item=T>>(&self, message_ids: It) -> Result<()> {
self.id.delete_messages(message_ids)
}