diff options
Diffstat (limited to 'src/model')
| -rw-r--r-- | src/model/channel/channel_id.rs | 4 | ||||
| -rw-r--r-- | src/model/channel/group.rs | 2 | ||||
| -rw-r--r-- | src/model/mod.rs | 7 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/model/channel/channel_id.rs b/src/model/channel/channel_id.rs index de96e3a..f728191 100644 --- a/src/model/channel/channel_id.rs +++ b/src/model/channel/channel_id.rs @@ -117,10 +117,10 @@ impl ChannelId { /// /// [`Channel::delete_messages`]: enum.Channel.html#method.delete_messages /// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html - 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<()> { let ids = message_ids .into_iter() - .map(|message_id| message_id.0) + .map(|message_id| message_id.as_ref().0) .collect::<Vec<u64>>(); let map = json!({ "messages": ids }); diff --git a/src/model/channel/group.rs b/src/model/channel/group.rs index 83c1222..dfdfd0f 100644 --- a/src/model/channel/group.rs +++ b/src/model/channel/group.rs @@ -96,7 +96,7 @@ impl Group { /// [`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.channel_id.delete_messages(message_ids) } diff --git a/src/model/mod.rs b/src/model/mod.rs index 6b6d9bf..5eae177 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -61,6 +61,13 @@ macro_rules! id_u64 { } } + // This is a hack so that functions can accept `IntoIterator<Item=IdType>`, or `IntoIterator<Item=&IdType>` + impl AsRef<$name> for $name { + fn as_ref(&self) -> &Self { + self + } + } + impl From<u64> for $name { fn from(id_as_u64: u64) -> $name { $name(id_as_u64) |