aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/builder/edit_member.rs4
-rw-r--r--src/gateway/shard.rs5
-rw-r--r--src/model/channel/channel_id.rs2
-rw-r--r--src/model/channel/group.rs2
-rw-r--r--src/model/channel/guild_channel.rs2
-rw-r--r--src/model/channel/private_channel.rs2
-rw-r--r--src/voice/connection.rs7
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> {