aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorLakelezz <[email protected]>2017-10-07 14:34:39 +0200
committeralex <[email protected]>2017-10-07 14:34:39 +0200
commitb3aa441c2d61ba324396deaf70f2c5818fd3f528 (patch)
treefabd9ae03e44c1c4b950fae6b1c78ee6505a426e /src/model
parentMake `has_correct_permissions` a free-standing function (diff)
downloadserenity-b3aa441c2d61ba324396deaf70f2c5818fd3f528.tar.xz
serenity-b3aa441c2d61ba324396deaf70f2c5818fd3f528.zip
Help-commands filtering and Member-prefix-search (#182)
Diffstat (limited to 'src/model')
-rw-r--r--src/model/guild/mod.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/model/guild/mod.rs b/src/model/guild/mod.rs
index 8173a04..e6023cb 100644
--- a/src/model/guild/mod.rs
+++ b/src/model/guild/mod.rs
@@ -741,6 +741,24 @@ impl Guild {
})
}
+ /// Retrieves all [`Member`] that start with a given `String`.
+ ///
+ /// If the prefix is "zey", following results are possible:
+ /// - "zey", "zeyla", "zey mei"
+ /// But the following are not because case-sensitivity:
+ /// - "Zey", "ZEYla", "zeY mei"
+ ///
+ /// [`Member`]: struct.Member.html
+ pub fn members_starting_with(&self, prefix: &str) -> Vec<&Member> {
+ self.members
+ .values()
+ .filter(|member|
+ member.user.read().unwrap().name.starts_with(prefix)
+ || member.nick.as_ref()
+ .map_or(false, |nick|
+ nick.starts_with(prefix))).collect()
+ }
+
/// Moves a member to a specific voice channel.
///
/// Requires the [Move Members] permission.