aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorLakelezz <[email protected]>2017-10-07 14:34:39 +0200
committerZeyla Hellyer <[email protected]>2017-10-09 15:48:18 -0700
commitee207b331d571d5afb5c35c8f119937d0196663a (patch)
treeb1e62ce42c649bf8e6b5c9d8e3dbd2ab0a92044e /src/model
parentMake `has_correct_permissions` a free-standing function (diff)
downloadserenity-ee207b331d571d5afb5c35c8f119937d0196663a.tar.xz
serenity-ee207b331d571d5afb5c35c8f119937d0196663a.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 eef9d73..918fb41 100644
--- a/src/model/guild/mod.rs
+++ b/src/model/guild/mod.rs
@@ -738,6 +738,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.