diff options
| -rw-r--r-- | src/builder/edit_member.rs | 4 | ||||
| -rw-r--r-- | src/gateway/shard.rs | 5 | ||||
| -rw-r--r-- | src/model/channel/channel_id.rs | 2 | ||||
| -rw-r--r-- | src/model/channel/group.rs | 2 | ||||
| -rw-r--r-- | src/model/channel/guild_channel.rs | 2 | ||||
| -rw-r--r-- | src/model/channel/private_channel.rs | 2 | ||||
| -rw-r--r-- | src/voice/connection.rs | 7 |
7 files changed, 15 insertions, 9 deletions
diff --git a/src/builder/edit_member.rs b/src/builder/edit_member.rs index e450669..2a34632 100644 --- a/src/builder/edit_member.rs +++ b/src/builder/edit_member.rs @@ -50,9 +50,9 @@ impl EditMember { /// Requires the [Manage Roles] permission to modify. /// /// [Manage Roles]: ../model/permissions/constant.MANAGE_ROLES.html - pub fn roles(mut self, roles: &[RoleId]) -> Self { + pub fn roles<'a, It: IntoIterator<Item=&'a RoleId>>(mut self, roles: It) -> Self { let role_ids = roles - .iter() + .into_iter() .map(|x| Value::Number(Number::from(x.0))) .collect(); diff --git a/src/gateway/shard.rs b/src/gateway/shard.rs index 2781e84..2c621b1 100644 --- a/src/gateway/shard.rs +++ b/src/gateway/shard.rs @@ -671,13 +671,14 @@ impl Shard { /// ../../model/event/enum.Event.html#variant.GuildMembersChunk /// [`Guild`]: ../../model/struct.Guild.html /// [`Member`]: ../../model/struct.Member.html - pub fn chunk_guilds(&mut self, guild_ids: &[GuildId], limit: Option<u16>, query: Option<&str>) { + pub fn chunk_guilds<'a, It>(&mut self, guild_ids: It, limit: Option<u16>, query: Option<&str>) + where It: IntoIterator<Item=&'a GuildId>{ debug!("[Shard {:?}] Requesting member chunks", self.shard_info); let msg = json!({ "op": OpCode::GetGuildMembers.num(), "d": { - "guild_id": guild_ids.iter().map(|x| x.0).collect::<Vec<u64>>(), + "guild_id": guild_ids.into_iter().map(|x| x.0).collect::<Vec<u64>>(), "limit": limit.unwrap_or(0), "query": query.unwrap_or(""), }, diff --git a/src/model/channel/channel_id.rs b/src/model/channel/channel_id.rs index 93db984..de96e3a 100644 --- a/src/model/channel/channel_id.rs +++ b/src/model/channel/channel_id.rs @@ -117,7 +117,7 @@ impl ChannelId { /// /// [`Channel::delete_messages`]: enum.Channel.html#method.delete_messages /// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html - pub fn delete_messages(&self, message_ids: &[MessageId]) -> Result<()> { + pub fn delete_messages<'a, It: IntoIterator<Item=&'a MessageId>>(&self, message_ids: It) -> Result<()> { let ids = message_ids .into_iter() .map(|message_id| message_id.0) diff --git a/src/model/channel/group.rs b/src/model/channel/group.rs index a8f08a8..83c1222 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(&self, message_ids: &[MessageId]) -> Result<()> { + pub fn delete_messages<'a, It: IntoIterator<Item=&'a MessageId>>(&self, message_ids: It) -> Result<()> { self.channel_id.delete_messages(message_ids) } diff --git a/src/model/channel/guild_channel.rs b/src/model/channel/guild_channel.rs index 5bfb0f1..e2e5f09 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(&self, message_ids: &[MessageId]) -> Result<()> { + pub fn delete_messages<'a, It: IntoIterator<Item=&'a MessageId>>(&self, message_ids: It) -> Result<()> { self.id.delete_messages(message_ids) } diff --git a/src/model/channel/private_channel.rs b/src/model/channel/private_channel.rs index 173a057..d6ba781 100644 --- a/src/model/channel/private_channel.rs +++ b/src/model/channel/private_channel.rs @@ -78,7 +78,7 @@ impl PrivateChannel { /// [`Channel::delete_messages`]: enum.Channel.html#method.delete_messages /// [Manage Messages]: permissions/constant.MANAGE_MESSAGES.html #[inline] - pub fn delete_messages(&self, message_ids: &[MessageId]) -> Result<()> { + pub fn delete_messages<'a, It: IntoIterator<Item=&'a MessageId>>(&self, message_ids: It) -> Result<()> { self.id.delete_messages(message_ids) } diff --git a/src/voice/connection.rs b/src/voice/connection.rs index c134798..09393f6 100644 --- a/src/voice/connection.rs +++ b/src/voice/connection.rs @@ -409,7 +409,12 @@ fn encryption_key(client: &mut Client) -> Result<Key> { } #[inline] -fn has_valid_mode(modes: &[String]) -> bool { modes.iter().any(|s| s == CRYPTO_MODE) } +fn has_valid_mode<'a, T, It> (modes: It) -> bool +where T: PartialEq<&'a str>, + It : IntoIterator<Item=T> +{ + modes.into_iter().any(|s| s == CRYPTO_MODE) +} #[inline] fn start_threads(client: Arc<Mutex<Client>>, udp: &UdpSocket) -> Result<ThreadItems> { |